diff --git a/AzurePowershell.Test.targets b/AzurePowershell.Test.targets index c7f24c47bbe7..a4adcf2014e1 100644 --- a/AzurePowershell.Test.targets +++ b/AzurePowershell.Test.targets @@ -84,7 +84,8 @@ - + + @@ -98,19 +99,37 @@ - - + + - - + + @@ -458,7 +477,7 @@ - + diff --git a/build.proj b/build.proj index 7d5ff416efcb..1de7a0a2ce61 100644 --- a/build.proj +++ b/build.proj @@ -70,7 +70,7 @@ diff --git a/packages.config b/packages.config index acdf0e730003..4e3a43699ecd 100644 --- a/packages.config +++ b/packages.config @@ -1,5 +1,5 @@ - - + + diff --git a/setup/azurecmdfiles.wxi b/setup/azurecmdfiles.wxi index a257f77c1b0f..395b69c37137 100644 --- a/setup/azurecmdfiles.wxi +++ b/setup/azurecmdfiles.wxi @@ -11,15 +11,15 @@ + + + - - - @@ -71,6 +71,9 @@ + + + @@ -104,6 +107,9 @@ + + + @@ -121,6 +127,9 @@ + + + @@ -142,9 +151,6 @@ - - - @@ -225,6 +231,9 @@ + + + @@ -240,9 +249,6 @@ - - - @@ -279,9 +285,6 @@ - - - @@ -296,6 +299,9 @@ + + + @@ -305,9 +311,6 @@ - - - @@ -344,9 +347,6 @@ - - - @@ -364,6 +364,9 @@ + + + @@ -373,9 +376,6 @@ - - - @@ -427,9 +427,6 @@ - - - @@ -444,6 +441,9 @@ + + + @@ -462,9 +462,6 @@ - - - @@ -527,6 +524,9 @@ + + + @@ -548,9 +548,6 @@ - - - @@ -649,6 +646,9 @@ + + + @@ -721,9 +721,6 @@ - - - @@ -799,9 +796,6 @@ - - - @@ -828,6 +822,9 @@ + + + @@ -846,9 +843,6 @@ - - - @@ -923,6 +917,9 @@ + + + @@ -944,9 +941,6 @@ - - - @@ -1006,6 +1000,9 @@ + + + @@ -1027,9 +1024,6 @@ - - - @@ -1092,6 +1086,9 @@ + + + @@ -1116,9 +1113,6 @@ - - - @@ -1161,9 +1155,6 @@ - - - @@ -1181,6 +1172,9 @@ + + + @@ -1196,9 +1190,6 @@ - - - @@ -1253,9 +1244,6 @@ - - - @@ -1270,6 +1258,9 @@ + + + @@ -1288,9 +1279,6 @@ - - - @@ -1333,9 +1321,6 @@ - - - @@ -1359,6 +1344,9 @@ + + + @@ -1404,9 +1392,6 @@ - - - @@ -1496,6 +1481,9 @@ + + + @@ -1538,12 +1526,12 @@ - - - + + + @@ -1589,9 +1577,6 @@ - - - @@ -1627,6 +1612,9 @@ + + + @@ -1678,9 +1666,6 @@ - - - @@ -1741,9 +1726,6 @@ - - - @@ -1767,6 +1749,9 @@ + + + @@ -1782,9 +1767,6 @@ - - - @@ -1818,9 +1800,6 @@ - - - @@ -1835,6 +1814,9 @@ + + + @@ -1853,9 +1835,6 @@ - - - @@ -1915,6 +1894,9 @@ + + + @@ -1933,9 +1915,6 @@ - - - @@ -1986,6 +1965,9 @@ + + + @@ -2001,9 +1983,6 @@ - - - @@ -2037,9 +2016,6 @@ - - - @@ -2057,6 +2033,9 @@ + + + @@ -2075,9 +2054,6 @@ - - - @@ -2155,6 +2131,9 @@ + + + @@ -2188,9 +2167,6 @@ - - - @@ -2256,6 +2232,9 @@ + + + @@ -2271,9 +2250,6 @@ - - - @@ -2307,9 +2283,6 @@ - - - @@ -2336,6 +2309,9 @@ + + + @@ -2381,9 +2357,6 @@ - - - @@ -2479,6 +2452,9 @@ + + + @@ -2521,9 +2497,6 @@ - - - @@ -2566,9 +2539,6 @@ - - - @@ -2587,9 +2557,6 @@ - - - @@ -2616,6 +2583,9 @@ + + + @@ -2634,9 +2604,6 @@ - - - @@ -2702,6 +2669,9 @@ + + + @@ -2720,9 +2690,6 @@ - - - @@ -2776,6 +2743,9 @@ + + + @@ -2800,9 +2770,6 @@ - - - @@ -2833,9 +2800,6 @@ - - - @@ -2844,6 +2808,9 @@ + + + @@ -2865,9 +2832,6 @@ - - - @@ -2898,9 +2862,6 @@ - - - @@ -2918,6 +2879,9 @@ + + + @@ -2954,9 +2918,6 @@ - - - @@ -3005,9 +2966,6 @@ - - - @@ -3029,6 +2987,9 @@ + + + @@ -3041,9 +3002,6 @@ - - - @@ -3106,15 +3064,15 @@ + + + - - - @@ -3166,6 +3124,9 @@ + + + @@ -3199,6 +3160,9 @@ + + + @@ -3219,15 +3183,15 @@ + + + - - - @@ -3401,6 +3365,9 @@ + + + @@ -3410,9 +3377,6 @@ - - - @@ -3481,15 +3445,15 @@ + + + - - - @@ -3591,6 +3555,9 @@ + + + @@ -3603,9 +3570,6 @@ - - - @@ -3752,15 +3716,15 @@ + + + - - - @@ -4126,6 +4090,9 @@ + + + @@ -4138,9 +4105,6 @@ - - - @@ -4208,15 +4172,15 @@ + + + - - - @@ -4315,15 +4279,15 @@ + + + - - - @@ -4701,15 +4665,15 @@ + + + - - - @@ -4877,15 +4841,15 @@ + + + - - - @@ -4957,15 +4921,15 @@ + + + - - - @@ -5047,9 +5011,9 @@ + - @@ -5067,6 +5031,7 @@ + @@ -5078,11 +5043,13 @@ + + @@ -5090,7 +5057,6 @@ - @@ -5117,12 +5083,12 @@ + - @@ -5135,15 +5101,14 @@ - + - @@ -5156,16 +5121,15 @@ - + - @@ -5183,18 +5147,17 @@ - + - @@ -5215,6 +5178,7 @@ + @@ -5222,7 +5186,6 @@ - @@ -5255,6 +5218,7 @@ + @@ -5279,7 +5243,6 @@ - @@ -5305,7 +5268,6 @@ - @@ -5314,13 +5276,13 @@ + - @@ -5345,6 +5307,7 @@ + @@ -5352,7 +5315,6 @@ - @@ -5372,6 +5334,7 @@ + @@ -5379,7 +5342,6 @@ - @@ -5400,6 +5362,7 @@ + @@ -5408,7 +5371,6 @@ - @@ -5423,18 +5385,17 @@ - + - @@ -5453,18 +5414,17 @@ - + - @@ -5479,7 +5439,6 @@ - @@ -5487,6 +5446,7 @@ + @@ -5502,7 +5462,6 @@ - @@ -5532,6 +5491,7 @@ + @@ -5546,8 +5506,8 @@ - + @@ -5563,7 +5523,6 @@ - @@ -5575,6 +5534,7 @@ + @@ -5592,7 +5552,6 @@ - @@ -5613,7 +5572,6 @@ - @@ -5621,12 +5579,12 @@ + - @@ -5638,18 +5596,17 @@ - + - @@ -5669,13 +5626,13 @@ + - @@ -5692,12 +5649,12 @@ + - @@ -5709,19 +5666,18 @@ - + - @@ -5747,6 +5703,7 @@ + @@ -5758,7 +5715,6 @@ - @@ -5780,12 +5736,12 @@ + - @@ -5797,7 +5753,6 @@ - @@ -5806,6 +5761,7 @@ + @@ -5821,7 +5777,6 @@ - @@ -5853,6 +5808,7 @@ + @@ -5867,7 +5823,6 @@ - @@ -5882,14 +5837,12 @@ - - @@ -5898,13 +5851,13 @@ + - @@ -5926,13 +5879,13 @@ + - @@ -5950,6 +5903,7 @@ + @@ -5958,7 +5912,6 @@ - @@ -5969,9 +5922,9 @@ - + @@ -5979,7 +5932,6 @@ - @@ -5990,12 +5942,12 @@ - + @@ -6008,7 +5960,6 @@ - @@ -6025,17 +5976,16 @@ - + - @@ -6056,9 +6006,9 @@ + - @@ -6076,6 +6026,7 @@ + @@ -6087,15 +6038,16 @@ + + - @@ -6153,10 +6105,10 @@ + - @@ -6179,9 +6131,9 @@ + - @@ -6215,11 +6167,11 @@ + - @@ -6268,9 +6220,9 @@ + - @@ -6382,11 +6334,11 @@ + - @@ -6408,9 +6360,9 @@ + - @@ -6443,9 +6395,9 @@ + - @@ -6561,9 +6513,9 @@ + - @@ -6619,9 +6571,9 @@ + - @@ -6645,9 +6597,9 @@ + - diff --git a/src/Common/Commands.Common.Authentication.Test/AuthenticationFactoryTests.cs b/src/Common/Commands.Common.Authentication.Test/AuthenticationFactoryTests.cs new file mode 100644 index 000000000000..7f2afce7000d --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/AuthenticationFactoryTests.cs @@ -0,0 +1,111 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; +using System; +using System.Collections.Generic; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Common.Authentication.Test +{ + public class AuthenticationFactoryTests + { + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void VerifySubscriptionTokenCacheRemove() + { + var authFactory = new AuthenticationFactory + { + TokenProvider = new MockAccessTokenProvider("testtoken", "testuser") + }; + + var subscriptionId = Guid.NewGuid(); + + var credential = authFactory.GetSubscriptionCloudCredentials(new AzureContext + ( + new AzureSubscription + { + Id = subscriptionId, + Properties = new Dictionary + { + { AzureSubscription.Property.Tenants, "123"} + } + }, + new AzureAccount + { + Id = "testuser", + Type = AzureAccount.AccountType.User, + Properties = new Dictionary + { + { AzureAccount.Property.Tenants, "123" } + } + }, + AzureEnvironment.PublicEnvironments["AzureCloud"] + )); + + Assert.True(credential is AccessTokenCredential); + Assert.Equal(subscriptionId, new Guid(((AccessTokenCredential)credential).SubscriptionId)); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void VerifyValidateAuthorityFalseForOnPremise() + { + var authFactory = new AuthenticationFactory + { + TokenProvider = new MockAccessTokenProvider("testtoken", "testuser") + }; + + var subscriptionId = Guid.NewGuid(); + var context = new AzureContext + ( + new AzureSubscription + { + Id = subscriptionId, + Properties = new Dictionary + { + { AzureSubscription.Property.Tenants, "123"} + } + }, + new AzureAccount + { + Id = "testuser", + Type = AzureAccount.AccountType.User, + Properties = new Dictionary + { + { AzureAccount.Property.Tenants, "123" } + } + }, + new AzureEnvironment + { + Name = "Katal", + OnPremise = true, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.ActiveDirectory, "http://ad.com" }, + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, "http://adresource.com" } + } + } + ); + + var credential = authFactory.Authenticate(context.Account, context.Environment, "common", null, ShowDialog.Always); + + Assert.False(((MockAccessTokenProvider)authFactory.TokenProvider).AdalConfiguration.ValidateAuthority); + } + } +} diff --git a/src/Common/Commands.Common.Authentication.Test/AzureRMProfileTests.cs b/src/Common/Commands.Common.Authentication.Test/AzureRMProfileTests.cs new file mode 100644 index 000000000000..49cf5fdcd40c --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/AzureRMProfileTests.cs @@ -0,0 +1,230 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; +using System; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Common.Authentication.Test +{ + public class AzureRMProfileTests + { + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ProfileSerializeDeserializeWorks() + { + var dataStore = new MockDataStore(); + AzureSession.DataStore = dataStore; + var profilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AzureSession.ProfileFile); + var currentProfile = new AzureRMProfile(profilePath); + var tenantId = Guid.NewGuid().ToString(); + var environment = new AzureEnvironment + { + Name = "testCloud", + Endpoints = { { AzureEnvironment.Endpoint.ActiveDirectory, "http://contoso.com" } } + }; + var account = new AzureAccount + { + Id = "me@contoso.com", + Type = AzureAccount.AccountType.User, + Properties = { { AzureAccount.Property.Tenants, tenantId } } + }; + var sub = new AzureSubscription + { + Account = account.Id, + Environment = environment.Name, + Id = new Guid(), + Name = "Contoso Test Subscription", + Properties = { { AzureSubscription.Property.Tenants, tenantId } } + }; + var tenant = new AzureTenant + { + Id = new Guid(tenantId), + Domain = "contoso.com" + }; + + currentProfile.Context = new AzureContext(sub, account, environment, tenant); + currentProfile.Environments[environment.Name] = environment; + currentProfile.Context.TokenCache = new byte[] { 1, 2, 3, 4, 5, 6, 8, 9, 0 }; + + AzureRMProfile deserializedProfile; + // Round-trip the exception: Serialize and de-serialize with a BinaryFormatter + BinaryFormatter bf = new BinaryFormatter(); + using (MemoryStream ms = new MemoryStream()) + { + // "Save" object state + bf.Serialize(ms, currentProfile); + + // Re-use the same stream for de-serialization + ms.Seek(0, 0); + + // Replace the original exception with de-serialized one + deserializedProfile = (AzureRMProfile)bf.Deserialize(ms); + } + Assert.NotNull(deserializedProfile); + var jCurrentProfile = currentProfile.ToString(); + var jDeserializedProfile = deserializedProfile.ToString(); + Assert.Equal(jCurrentProfile, jDeserializedProfile); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void SavingProfileWorks() + { + string expected = @"{ + ""Environments"": { + ""testCloud"": { + ""Name"": ""testCloud"", + ""OnPremise"": false, + ""Endpoints"": { + ""ActiveDirectory"": ""http://contoso.com"" + } + } + }, + ""Context"": { + ""Account"": { + ""Id"": ""me@contoso.com"", + ""Type"": 1, + ""Properties"": { + ""Tenants"": ""3c0ff8a7-e8bb-40e8-ae66-271343379af6"" + } + }, + ""Subscription"": { + ""Id"": ""00000000-0000-0000-0000-000000000000"", + ""Name"": ""Contoso Test Subscription"", + ""Environment"": ""testCloud"", + ""Account"": ""me@contoso.com"", + ""State"": ""Enabled"", + ""Properties"": { + ""Tenants"": ""3c0ff8a7-e8bb-40e8-ae66-271343379af6"" + } + }, + ""Environment"": { + ""Name"": ""testCloud"", + ""OnPremise"": false, + ""Endpoints"": { + ""ActiveDirectory"": ""http://contoso.com"" + } + }, + ""Tenant"": { + ""Id"": ""3c0ff8a7-e8bb-40e8-ae66-271343379af6"", + ""Domain"": ""contoso.com"" + }, + ""TokenCache"": ""AQIDBAUGCAkA"" + } +}"; + var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AzureSession.ProfileFile); + var dataStore = new MockDataStore(); + AzureSession.DataStore = dataStore; + AzureRMProfile profile = new AzureRMProfile(path); + var tenantId = new Guid("3c0ff8a7-e8bb-40e8-ae66-271343379af6"); + var environment = new AzureEnvironment + { + Name = "testCloud", + Endpoints = { { AzureEnvironment.Endpoint.ActiveDirectory, "http://contoso.com" } } + }; + var account = new AzureAccount + { + Id = "me@contoso.com", + Type = AzureAccount.AccountType.User, + Properties = { { AzureAccount.Property.Tenants, tenantId.ToString() } } + }; + var sub = new AzureSubscription + { + Account = account.Id, + Environment = environment.Name, + Id = new Guid(), + Name = "Contoso Test Subscription", + State = "Enabled", + Properties = { { AzureSubscription.Property.Tenants, tenantId.ToString() } } + }; + var tenant = new AzureTenant + { + Id = tenantId, + Domain = "contoso.com" + }; + profile.Context = new AzureContext(sub, account, environment, tenant); + profile.Environments[environment.Name] = environment; + profile.Context.TokenCache = new byte[] { 1, 2, 3, 4, 5, 6, 8, 9, 0 }; + profile.Save(); + string actual = dataStore.ReadFileAsText(path); + Assert.Equal(expected, actual); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoadingProfileWorks() + { + string contents = @"{ + ""Environments"": { + ""testCloud"": { + ""Name"": ""testCloud"", + ""OnPremise"": false, + ""Endpoints"": { + ""ActiveDirectory"": ""http://contoso.com"" + } + } + }, + ""Context"": { + ""TokenCache"": ""AQIDBAUGCAkA"", + ""Account"": { + ""Id"": ""me@contoso.com"", + ""Type"": 1, + ""Properties"": { + ""Tenants"": ""3c0ff8a7-e8bb-40e8-ae66-271343379af6"" + } + }, + ""Subscription"": { + ""Id"": ""00000000-0000-0000-0000-000000000000"", + ""Name"": ""Contoso Test Subscription"", + ""Environment"": ""testCloud"", + ""Account"": ""me@contoso.com"", + ""Properties"": { + ""Tenants"": ""3c0ff8a7-e8bb-40e8-ae66-271343379af6"" + } + }, + ""Environment"": { + ""Name"": ""testCloud"", + ""OnPremise"": false, + ""Endpoints"": { + ""ActiveDirectory"": ""http://contoso.com"" + } + }, + ""Tenant"": { + ""Id"": ""3c0ff8a7-e8bb-40e8-ae66-271343379af6"", + ""Domain"": ""contoso.com"" + } + } +}"; + var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AzureSession.ProfileFile); + var dataStore = new MockDataStore(); + AzureSession.DataStore = dataStore; + dataStore.WriteFile(path, contents); + var profile = new AzureRMProfile(path); + Assert.Equal(4, profile.Environments.Count); + Assert.Equal("3c0ff8a7-e8bb-40e8-ae66-271343379af6", profile.Context.Tenant.Id.ToString()); + Assert.Equal("contoso.com", profile.Context.Tenant.Domain); + Assert.Equal("00000000-0000-0000-0000-000000000000", profile.Context.Subscription.Id.ToString()); + Assert.Equal("testCloud", profile.Context.Environment.Name); + Assert.Equal("me@contoso.com", profile.Context.Account.Id); + Assert.Equal(new byte[] { 1, 2, 3, 4, 5, 6, 8, 9, 0 }, profile.Context.TokenCache); + Assert.Equal(path, profile.ProfilePath); + } + } +} diff --git a/src/Common/Commands.Common.Authentication.Test/AzureSMProfileTests.cs b/src/Common/Commands.Common.Authentication.Test/AzureSMProfileTests.cs new file mode 100644 index 000000000000..663b83eb21db --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/AzureSMProfileTests.cs @@ -0,0 +1,193 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Common.Authentication.Test +{ + public class AzureSMProfileTests + { + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ProfileSaveDoesNotSerializeContext() + { + var dataStore = new MockDataStore(); + var profilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AzureSession.ProfileFile); + var profile = new AzureSMProfile(profilePath); + AzureSession.DataStore = dataStore; + var tenant = Guid.NewGuid().ToString(); + var environment = new AzureEnvironment + { + Name = "testCloud", + Endpoints = { { AzureEnvironment.Endpoint.ActiveDirectory, "http://contoso.com" } } + }; + var account = new AzureAccount + { + Id = "me@contoso.com", + Type = AzureAccount.AccountType.User, + Properties = { { AzureAccount.Property.Tenants, tenant } } + }; + var sub = new AzureSubscription + { + Account = account.Id, + Environment = environment.Name, + Id = new Guid(), + Name = "Contoso Test Subscription", + Properties = { { AzureSubscription.Property.Tenants, tenant } } + }; + + profile.Environments[environment.Name] = environment; + profile.Accounts[account.Id] = account; + profile.Subscriptions[sub.Id] = sub; + + profile.Save(); + + var profileFile = profile.ProfilePath; + string profileContents = dataStore.ReadFileAsText(profileFile); + var readProfile = JsonConvert.DeserializeObject>(profileContents); + Assert.False(readProfile.ContainsKey("DefaultContext")); + AzureSMProfile parsedProfile = new AzureSMProfile(); + var serializer = new JsonProfileSerializer(); + Assert.True(serializer.Deserialize(profileContents, parsedProfile)); + Assert.NotNull(parsedProfile); + Assert.NotNull(parsedProfile.Environments); + Assert.True(parsedProfile.Environments.ContainsKey(environment.Name)); + Assert.NotNull(parsedProfile.Accounts); + Assert.True(parsedProfile.Accounts.ContainsKey(account.Id)); + Assert.NotNull(parsedProfile.Subscriptions); + Assert.True(parsedProfile.Subscriptions.ContainsKey(sub.Id)); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ProfileSerializeDeserializeWorks() + { + var dataStore = new MockDataStore(); + var profilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AzureSession.ProfileFile); + var profile = new AzureSMProfile(profilePath); + AzureSession.DataStore = dataStore; + var tenant = Guid.NewGuid().ToString(); + var environment = new AzureEnvironment + { + Name = "testCloud", + Endpoints = { { AzureEnvironment.Endpoint.ActiveDirectory, "http://contoso.com" } } + }; + var account = new AzureAccount + { + Id = "me@contoso.com", + Type = AzureAccount.AccountType.User, + Properties = { { AzureAccount.Property.Tenants, tenant } } + }; + var sub = new AzureSubscription + { + Account = account.Id, + Environment = environment.Name, + Id = new Guid(), + Name = "Contoso Test Subscription", + Properties = { { AzureSubscription.Property.Tenants, tenant } } + }; + + profile.Environments[environment.Name] = environment; + profile.Accounts[account.Id] = account; + profile.Subscriptions[sub.Id] = sub; + + AzureSMProfile deserializedProfile; + // Round-trip the exception: Serialize and de-serialize with a BinaryFormatter + BinaryFormatter bf = new BinaryFormatter(); + using (MemoryStream ms = new MemoryStream()) + { + // "Save" object state + bf.Serialize(ms, profile); + + // Re-use the same stream for de-serialization + ms.Seek(0, 0); + + // Replace the original exception with de-serialized one + deserializedProfile = (AzureSMProfile)bf.Deserialize(ms); + } + Assert.NotNull(deserializedProfile); + var jCurrentProfile = JsonConvert.SerializeObject(profile); + var jDeserializedProfile = JsonConvert.SerializeObject(deserializedProfile); + Assert.Equal(jCurrentProfile, jDeserializedProfile); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AccountMatchingIgnoresCase() + { + var profile = new AzureSMProfile(); + string accountName = "howdy@contoso.com"; + string accountNameCase = "Howdy@Contoso.com"; + var subscriptionId = Guid.NewGuid(); + var tenantId = Guid.NewGuid(); + var account = new AzureAccount + { + Id = accountName, + Type = AzureAccount.AccountType.User + }; + + account.SetProperty(AzureAccount.Property.Subscriptions, subscriptionId.ToString()); + account.SetProperty(AzureAccount.Property.Tenants, tenantId.ToString()); + var subscription = new AzureSubscription + { + Id = subscriptionId, + Account = accountNameCase, + Environment = EnvironmentName.AzureCloud + }; + + subscription.SetProperty(AzureSubscription.Property.Default, "true"); + subscription.SetProperty(AzureSubscription.Property.Tenants, tenantId.ToString()); + profile.Accounts.Add(accountName, account); + profile.Subscriptions.Add(subscriptionId, subscription); + Assert.NotNull(profile.Context); + Assert.NotNull(profile.Context.Account); + Assert.NotNull(profile.Context.Environment); + Assert.NotNull(profile.Context.Subscription); + Assert.Equal(account, profile.Context.Account); + Assert.Equal(subscription, profile.Context.Subscription); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void GetsCorrectContext() + { + AzureSMProfile profile = new AzureSMProfile(); + string accountId = "accountId"; + Guid subscriptionId = Guid.NewGuid(); + profile.Accounts.Add(accountId, new AzureAccount { Id = accountId, Type = AzureAccount.AccountType.User }); + profile.Subscriptions.Add(subscriptionId, new AzureSubscription + { + Account = accountId, + Environment = EnvironmentName.AzureChinaCloud, + Name = "hello", + Id = subscriptionId + }); + profile.DefaultSubscription = profile.Subscriptions[subscriptionId]; + AzureContext context = profile.Context; + + Assert.Equal(accountId, context.Account.Id); + Assert.Equal(subscriptionId, context.Subscription.Id); + Assert.Equal(EnvironmentName.AzureChinaCloud, context.Environment.Name); + } + } +} diff --git a/src/Common/Commands.Common.Authentication.Test/ClientFactoryHandlerTests.cs b/src/Common/Commands.Common.Authentication.Test/ClientFactoryHandlerTests.cs new file mode 100644 index 000000000000..9b838cd9e9e5 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/ClientFactoryHandlerTests.cs @@ -0,0 +1,78 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.WindowsAzure.Management.Storage; +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Security; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Common.Authentication.Test +{ + public class ClientFactoryHandlerTests + { + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void DelegatingHandlersAreCloned() + { + string userAccount = "user@contoso.com"; + Guid subscriptionId = Guid.NewGuid(); + AzureContext context = new AzureContext + ( + new AzureSubscription() + { + Account = userAccount, + Environment = "AzureCloud", + Id = subscriptionId, + Properties = new Dictionary() { { AzureSubscription.Property.Tenants, "common" } } + }, + new AzureAccount() + { + Id = userAccount, + Type = AzureAccount.AccountType.User, + Properties = new Dictionary() { { AzureAccount.Property.Tenants, "common" } } + }, + AzureEnvironment.PublicEnvironments["AzureCloud"] + ); + + AzureSession.AuthenticationFactory = new MockTokenAuthenticationFactory(userAccount, Guid.NewGuid().ToString()); + var mockHandler = new MockDelegatingHandler(); + var factory = new ClientFactory(); + factory.AddHandler(mockHandler); + var client = factory.CreateClient(context, AzureEnvironment.Endpoint.ServiceManagement); + client = factory.CreateClient(context, AzureEnvironment.Endpoint.ServiceManagement); + client = factory.CreateClient(context, AzureEnvironment.Endpoint.ServiceManagement); + client = factory.CreateClient(context, AzureEnvironment.Endpoint.ServiceManagement); + client = factory.CreateClient(context, AzureEnvironment.Endpoint.ServiceManagement); + Assert.Equal(5, MockDelegatingHandler.cloneCount); + } + + private class MockDelegatingHandler : DelegatingHandler, ICloneable + { + public static int cloneCount = 0; + + public object Clone() + { + cloneCount++; + return this; + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication.Test/ClientFactoryTests.cs b/src/Common/Commands.Common.Authentication.Test/ClientFactoryTests.cs new file mode 100644 index 000000000000..4ea2bfdeec8f --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/ClientFactoryTests.cs @@ -0,0 +1,145 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.WindowsAzure.Management.Storage; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Security; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Common.Authentication.Test +{ + public class ClientFactoryTests : IDisposable + { + private string subscriptionId; + + private string userAccount; + + private SecureString password; + + private bool runTest; + + public ClientFactoryTests() + { + // Example of environment variable: TEST_AZURE_CREDENTIALS=;;" + string credsEnvironmentVariable = Environment.GetEnvironmentVariable("TEST_AZURE_CREDENTIALS") ?? ""; + string[] creds = credsEnvironmentVariable.Split(';'); + + if (creds.Length != 3) + { + // The test is not configured to run. + runTest = false; + return; + } + + subscriptionId = creds[0]; + userAccount = creds[1]; + password = new SecureString(); + foreach (char letter in creds[2]) + { + password.AppendChar(letter); + } + password = password.Length == 0 ? null : password; + runTest = true; + } + + /// + /// This test run live against Azure to list storage accounts under current subscription. + /// + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void VerifyClientFactoryWorks() + { + if (!runTest) + { + return; + } + + AzureContext context = new AzureContext + ( + new AzureSubscription() + { + Account = userAccount, + Environment = "AzureCloud", + Id = Guid.Parse(subscriptionId), + Properties = new Dictionary() { { AzureSubscription.Property.Tenants, "common" } } + }, + new AzureAccount() + { + Id = userAccount, + Type = AzureAccount.AccountType.User, + Properties = new Dictionary() { { AzureAccount.Property.Tenants, "common" } } + }, + AzureEnvironment.PublicEnvironments["AzureCloud"] + ); + + // Add registration action to make sure we register for the used provider (if required) + // AzureSession.ClientFactory.AddAction(new RPRegistrationAction()); + + // Authenticate! + AzureSession.AuthenticationFactory.Authenticate(context.Account, context.Environment, "common", password, ShowDialog.Always); + + AzureSession.ClientFactory.AddUserAgent("TestUserAgent", "1.0"); + // Create the client + var client = AzureSession.ClientFactory.CreateClient(context, AzureEnvironment.Endpoint.ServiceManagement); + + // List storage accounts + var storageAccounts = client.StorageAccounts.List().StorageAccounts; + foreach (var storageAccount in storageAccounts) + { + Assert.NotNull(storageAccount); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void VerifyProductInfoHeaderValueEquality() + { + ClientFactory factory = new ClientFactory(); + factory.AddUserAgent("test1", "123"); + factory.AddUserAgent("test2", "123"); + factory.AddUserAgent("test1", "123"); + factory.AddUserAgent("test1", "456"); + factory.AddUserAgent("test3"); + factory.AddUserAgent("tesT3"); + + Assert.Equal(4, factory.UserAgents.Count); + Assert.True(factory.UserAgents.Any(u => u.Product.Name == "test1" && u.Product.Version == "123")); + Assert.True(factory.UserAgents.Any(u => u.Product.Name == "test2" && u.Product.Version == "123")); + Assert.True(factory.UserAgents.Any(u => u.Product.Name == "test1" && u.Product.Version == "456")); + Assert.True(factory.UserAgents.Any(u => u.Product.Name == "test3" && u.Product.Version == null)); + } + + public virtual void Dispose(bool disposing) + { + if (disposing && password != null) + { + password.Dispose(); + password = null; + } + } + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + } +} diff --git a/src/Common/Commands.Common.Authentication.Test/Commands.Common.Authentication.Test.csproj b/src/Common/Commands.Common.Authentication.Test/Commands.Common.Authentication.Test.csproj new file mode 100644 index 000000000000..763ebd8ca5d5 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Commands.Common.Authentication.Test.csproj @@ -0,0 +1,190 @@ + + + + + + + Debug + AnyCPU + {C2CF99A2-D35E-4AED-AFB9-C26960AF1D0D} + Library + Properties + Microsoft.Azure.Commands.Common.Authentication.Test + Microsoft.Azure.Commands.Common.Authentication.Test + v4.5 + 512 + + ..\..\ + true + 9fdcb6f4 + + + true + full + false + bin\Debug + DEBUG;TRACE + prompt + 4 + true + true + false + + + bin\Release + TRACE;SIGN + true + pdbonly + AnyCPU + bin\Release\Microsoft.Azure.Commands.Profile.Test.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;$(ProgramFiles)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\Rule Sets + ;$(ProgramFiles)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop\Rules + true + MSSharedLibKey.snk + true + true + false + + + + ..\..\packages\Hyak.Common.1.0.3\lib\net45\Hyak.Common.dll + True + + + False + ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll + + + False + ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + + + ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\portable-net45+win+wpa81\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + + + ..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.1.1\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll + True + + + ..\..\packages\Moq.4.2.1409.1722\lib\net40\Moq.dll + + + ..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + + + + + + ..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Extensions.dll + True + + + ..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll + True + + + + + ..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + + + + + + + + + + + + + True + True + Resources.resx + + + + + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + + + {5ee72c53-1720-4309-b54b-5fb79703195f} + Commands.Common + + + {c1bda476-a5cc-4394-914d-48b0ec31a710} + Commands.ScenarioTests.Common + + + + + Designer + + + + + + + + + + + + + + + + + + + + + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/ConversionUtilitiesTests.cs b/src/Common/Commands.Common.Authentication.Test/ConversionUtilitiesTests.cs new file mode 100644 index 000000000000..2c18f9d7db82 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/ConversionUtilitiesTests.cs @@ -0,0 +1,124 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication; +using System.Collections.Generic; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.WindowsAzure.Commands.Common.Test +{ + public class ConversionUtilitiesTests + { + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void DeserializeJsonWorksForSimpleCases() + { + const string json1 = + @"{ + ""foo1"": ""bar1"", + ""foo2"": ""bar2"", + ""num"": 25, + ""address"": + { + ""streetAddress"": ""123 Main Str"", + ""city"": ""Some City"", + }, + ""list"": + [ + { + ""val1"": ""a"", + ""val2"": ""b"" + }, + { + ""val3"": ""c"", + ""val4"": ""d"" + } + ] + }"; + + Dictionary result; + result = JsonUtilities.DeserializeJson(json1); + Assert.NotNull(result); + Assert.Equal(5, result.Count); + Assert.Equal(2, ((Dictionary)result["address"]).Count); + Assert.Equal(2, ((List)result["list"]).Count); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void DeserializeJsonWorksForEmptyObjects() + { + const string json1 = + @"{ + ""foo1"": ""bar1"", + ""foo2"": ""bar2"", + ""num"": 25, + ""address"": + { }, + ""list"": + [ ] + }"; + + Dictionary result; + result = JsonUtilities.DeserializeJson(json1); + Assert.NotNull(result); + Assert.Equal(5, result.Count); + Assert.Equal(0, ((Dictionary)result["address"]).Count); + Assert.Equal(0, ((List)result["list"]).Count); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void DeserializeJsonAcceptsBadArguments() + { + Dictionary result; + result = JsonUtilities.DeserializeJson(null); + Assert.Null(result); + + result = JsonUtilities.DeserializeJson(string.Empty); + Assert.True(result.Count == 0); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void DeserializeJsonAcceptsBadJson() + { + const string json1 = + @"{ + ""foo1"": ""bar1"", + ""foo2"": ""bar2"", + ""num"": 25, + ""address"": + { + ""streetAddress"": ""123 Main Str"", + ""city"": ""Some City"", + }, + ""list"": + [ + { + ""val1"": ""a"", + ""val2"": ""b"" + }, + { + ""val3"": ""c"", + ""val4"": ""d"" + }"; + + Dictionary result; + result = JsonUtilities.DeserializeJson(json1); + Assert.Null(result); + } + } +} diff --git a/src/Common/Commands.Common.Authentication.Test/Mocks/MockDataStore.cs b/src/Common/Commands.Common.Authentication.Test/Mocks/MockDataStore.cs new file mode 100644 index 000000000000..61a148ebbdd0 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Mocks/MockDataStore.cs @@ -0,0 +1,318 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.RegularExpressions; + +namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks +{ + public class MockDataStore : IDataStore + { + private Dictionary virtualStore = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + private Dictionary certStore = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + private const string FolderKey = "Folder"; + + public Dictionary VirtualStore + { + get { return virtualStore; } + set { virtualStore = value; } + } + + public void WriteFile(string path, string contents) + { + VirtualStore[path] = contents; + } + + public void WriteFile(string path, string contents, Encoding encoding) + { + WriteFile(path, contents); + } + + public void WriteFile(string path, byte[] contents) + { + VirtualStore[path] = Encoding.Default.GetString(contents); + } + + public string ReadFileAsText(string path) + { + if (VirtualStore.ContainsKey(path)) + { + return VirtualStore[path]; + } + else + { + throw new IOException("File not found: " + path); + } + } + + public Stream ReadFileAsStream(string path) + { + if (VirtualStore.ContainsKey(path)) + { + MemoryStream stream = new MemoryStream(); + StreamWriter writer = new StreamWriter(stream); + writer.Write(VirtualStore[path]); + writer.Flush(); + stream.Position = 0; + return stream; + } + else + { + throw new IOException("File not found: " + path); + } + } + + public byte[] ReadFileAsBytes(string path) + { + if (VirtualStore.ContainsKey(path)) + { + return Encoding.Default.GetBytes(VirtualStore[path]); + } + else + { + throw new IOException("File not found: " + path); + } + } + + public void RenameFile(string oldPath, string newPath) + { + if (VirtualStore.ContainsKey(oldPath)) + { + VirtualStore[newPath] = VirtualStore[oldPath]; + VirtualStore.Remove(oldPath); + } + else + { + throw new IOException("File not found: " + oldPath); + } + } + + public void CopyFile(string oldPath, string newPath) + { + if (VirtualStore.ContainsKey(oldPath)) + { + VirtualStore[newPath] = VirtualStore[oldPath]; + } + else + { + throw new IOException("File not found: " + oldPath); + } + } + + public bool FileExists(string path) + { + return VirtualStore.ContainsKey(path); + } + + public void DeleteFile(string path) + { + if (VirtualStore.ContainsKey(path)) + { + VirtualStore.Remove(path); + } + else + { + throw new IOException("File not found: " + path); + } + } + + public void DeleteDirectory(string dir) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(dir)) + { + VirtualStore.Remove(key); + } + } + } + + public void EmptyDirectory(string dirPath) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(dirPath)) + { + VirtualStore.Remove(key); + } + } + } + + public bool DirectoryExists(string path) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(path)) + { + return true; + } + } + return false; + } + + public void CreateDirectory(string path) + { + VirtualStore[path] = FolderKey; + } + + public string[] GetDirectories(string sourceDirName) + { + HashSet dirs = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(sourceDirName)) + { + var directoryName = Path.GetDirectoryName(key); + if (!dirs.Contains(directoryName)) + { + dirs.Add(directoryName); + } + } + } + return dirs.ToArray(); + } + + public string[] GetDirectories(string startDirectory, string filePattern, SearchOption options) + { + HashSet dirs = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(startDirectory) && Regex.IsMatch(key, WildcardToRegex(filePattern), RegexOptions.IgnoreCase)) + { + var directoryName = Path.GetDirectoryName(key); + if (!dirs.Contains(directoryName)) + { + dirs.Add(directoryName); + } + } + } + return dirs.ToArray(); + } + + public string[] GetFiles(string sourceDirName) + { + HashSet files = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(sourceDirName) && VirtualStore[key] != FolderKey) + { + if (!files.Contains(key)) + { + files.Add(key); + } + } + } + return files.ToArray(); + } + + public string[] GetFiles(string startDirectory, string filePattern, SearchOption options) + { + HashSet files = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(startDirectory) && VirtualStore[key] != FolderKey && Regex.IsMatch(key, WildcardToRegex(filePattern), RegexOptions.IgnoreCase)) + { + if (!files.Contains(key)) + { + files.Add(key); + } + } + } + return files.ToArray(); + } + + public FileAttributes GetFileAttributes(string path) + { + if (VirtualStore[path] == FolderKey) + { + return FileAttributes.Directory; + } + if (VirtualStore.ContainsKey(path)) + { + return FileAttributes.Normal; + } + else + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(path)) + { + return FileAttributes.Directory; + } + } + throw new IOException("File not found: " + path); + } + } + + public X509Certificate2 GetCertificate(string thumbprint) + { + if (thumbprint != null && certStore.ContainsKey(thumbprint)) + { + return certStore[thumbprint]; + } + else + { + return new X509Certificate2(); + } + } + + public void AddCertificate(X509Certificate2 cert) + { + if (cert != null && cert.Thumbprint != null) + { + certStore[cert.Thumbprint] = cert; + } + } + + public void RemoveCertificate(string thumbprint) + { + if (thumbprint != null && certStore.ContainsKey(thumbprint)) + { + certStore.Remove(thumbprint); + } + } + + /// + /// Converts unix asterisk based file pattern to regex + /// + /// Asterisk based pattern + /// Regeular expression of null is empty + private static string WildcardToRegex(string wildcard) + { + if (wildcard == null || wildcard == "") return wildcard; + + StringBuilder sb = new StringBuilder(); + + char[] chars = wildcard.ToCharArray(); + for (int i = 0; i < chars.Length; ++i) + { + if (chars[i] == '*') + sb.Append(".*"); + else if (chars[i] == '?') + sb.Append("."); + else if ("+()^$.{}|\\".IndexOf(chars[i]) != -1) + sb.Append('\\').Append(chars[i]); // prefix all metacharacters with backslash + else + sb.Append(chars[i]); + } + return sb.ToString().ToLowerInvariant(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication.Test/Properties/AssemblyInfo.cs b/src/Common/Commands.Common.Authentication.Test/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..0e37b664454e --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Reflection; +using System.Runtime.InteropServices; +using Microsoft.WindowsAzure.Commands.Common; +using Xunit; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Microsoft Azure Powershell - Common Authentication Profile Test")] +[assembly: AssemblyCompany(AzurePowerShell.AssemblyCompany)] +[assembly: AssemblyProduct(AzurePowerShell.AssemblyProduct)] +[assembly: AssemblyCopyright(AzurePowerShell.AssemblyCopyright)] + +[assembly: ComVisible(false)] +[assembly: CLSCompliant(false)] +[assembly: AssemblyVersion("1.0.4")] +[assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/Common/Commands.Common.Authentication.Test/Properties/Resources.Designer.cs b/src/Common/Commands.Common.Authentication.Test/Properties/Resources.Designer.cs new file mode 100644 index 000000000000..cdd60cdbad4a --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Properties/Resources.Designer.cs @@ -0,0 +1,123 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.34014 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Common.Authentication.Test.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Common.Authentication.Test.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] InvalidProfile { + get { + object obj = ResourceManager.GetObject("InvalidProfile", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] ValidProfile { + get { + object obj = ResourceManager.GetObject("ValidProfile", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] ValidProfile2 { + get { + object obj = ResourceManager.GetObject("ValidProfile2", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] ValidProfile3 { + get { + object obj = ResourceManager.GetObject("ValidProfile3", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] ValidProfileChina { + get { + object obj = ResourceManager.GetObject("ValidProfileChina", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] ValidProfileChinaOld { + get { + object obj = ResourceManager.GetObject("ValidProfileChinaOld", resourceCulture); + return ((byte[])(obj)); + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication.Test/Properties/Resources.resx b/src/Common/Commands.Common.Authentication.Test/Properties/Resources.resx new file mode 100644 index 000000000000..4e9f161416ad --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Properties/Resources.resx @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\resources\invalidprofile.publishsettings;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\resources\validprofile.publishsettings;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\resources\validprofile2.publishsettings;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\resources\validprofile3.publishsettings;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\resources\validprofilechina.publishsettings;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\resources\validprofilechinaold.publishsettings;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/Azure.publishsettings b/src/Common/Commands.Common.Authentication.Test/Resources/Azure.publishsettings new file mode 100644 index 000000000000..aeae7405aa98 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/Azure.publishsettings @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/GB18030ServiceDefinition.csdef b/src/Common/Commands.Common.Authentication.Test/Resources/GB18030ServiceDefinition.csdef new file mode 100644 index 000000000000..db0be54262c4 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/GB18030ServiceDefinition.csdef @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/InvalidProfile.PublishSettings b/src/Common/Commands.Common.Authentication.Test/Resources/InvalidProfile.PublishSettings new file mode 100644 index 000000000000..3886328a747d --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/InvalidProfile.PublishSettings @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/ResourceLocator.cs b/src/Common/Commands.Common.Authentication.Test/Resources/ResourceLocator.cs new file mode 100644 index 000000000000..efccf6a8b006 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/ResourceLocator.cs @@ -0,0 +1,22 @@ +// ---------------------------------------------------------------------------------- +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.WindowsAzure.Commands.Common.Test.Resources +{ + /// + /// A dummy class used to located the resources in this folder/namespace. + /// + public class ResourceLocator + { + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile.PublishSettings b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile.PublishSettings new file mode 100644 index 000000000000..f405a3be38b2 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile.PublishSettings @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile2.PublishSettings b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile2.PublishSettings new file mode 100644 index 000000000000..d2c13f8859e2 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile2.PublishSettings @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile3.PublishSettings b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile3.PublishSettings new file mode 100644 index 000000000000..455ad34a8022 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfile3.PublishSettings @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfileChina.PublishSettings b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfileChina.PublishSettings new file mode 100644 index 000000000000..4a533f0de98c --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfileChina.PublishSettings @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfileChinaOld.PublishSettings b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfileChinaOld.PublishSettings new file mode 100644 index 000000000000..41b00dffeb4b --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/ValidProfileChinaOld.PublishSettings @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/invalidsubscriptions.xml b/src/Common/Commands.Common.Authentication.Test/Resources/invalidsubscriptions.xml new file mode 100644 index 000000000000..426c453cd421 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/invalidsubscriptions.xml @@ -0,0 +1,4 @@ + + + This is a fake xml. + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/subscriptions.xml b/src/Common/Commands.Common.Authentication.Test/Resources/subscriptions.xml new file mode 100644 index 000000000000..a1c4c9b08732 --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/subscriptions.xml @@ -0,0 +1,15 @@ + + + + 279b0675-cf67-467f-98f0-67ae31eb540f + 12D09EC0008EEE10C1B80AB70B3739E6BC509BB3 + 0853C43B56C81CE8FC44C8ACDC8C54783C6080E2 + 0853C43B56C81CE8FC44C8ACDC8C54783C6080E2 + + + 279b0675-cf67-467f-98f0-67ae31eb540f + 12D09EC0008EEE10C1B80AB70B3739E6BC509BB3 + 0853C43B56C81CE8FC44C8ACDC8C54783C6080E2 + 0853C43B56C81CE8FC44C8ACDC8C54783C6080E2 + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/Resources/testruntimemanifest.xml b/src/Common/Commands.Common.Authentication.Test/Resources/testruntimemanifest.xml new file mode 100644 index 000000000000..518bce45a46c --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/Resources/testruntimemanifest.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication.Test/packages.config b/src/Common/Commands.Common.Authentication.Test/packages.config new file mode 100644 index 000000000000..6933da5a807e --- /dev/null +++ b/src/Common/Commands.Common.Authentication.Test/packages.config @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Authentication/AadAuthenticationException.cs b/src/Common/Commands.Common.Authentication/Authentication/AadAuthenticationException.cs new file mode 100644 index 000000000000..7fc5cf31504f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/AadAuthenticationException.cs @@ -0,0 +1,94 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// Base class representing an exception that occurs when + /// authenticating against Azure Active Directory + /// + [Serializable] + public abstract class AadAuthenticationException : Exception + { + protected AadAuthenticationException() + { + } + + protected AadAuthenticationException(string message) : base(message) + { + } + + protected AadAuthenticationException(string message, Exception innerException) : base(message, innerException) + { + } + } + + /// + /// Exception that gets thrown when the user explicitly + /// cancels an authentication operation. + /// + [Serializable] + public class AadAuthenticationCanceledException : AadAuthenticationException + { + public AadAuthenticationCanceledException(string message, Exception innerException) : base(message, innerException) + { + } + } + + /// + /// Exception that gets thrown when the ADAL library + /// is unable to authenticate without a popup dialog. + /// + [Serializable] + public class AadAuthenticationFailedWithoutPopupException : AadAuthenticationException + { + public AadAuthenticationFailedWithoutPopupException(string message, Exception innerException) + : base(message, innerException) + { + } + } + + /// + /// Exception that gets thrown if an authentication operation + /// fails on the server. + /// + [Serializable] + public class AadAuthenticationFailedException : AadAuthenticationException + { + public AadAuthenticationFailedException(string message, Exception innerException) : base(message, innerException) + { + } + } + + /// + /// Exception thrown if a refresh token has expired. + /// + [Serializable] + public class AadAuthenticationCantRenewException : AadAuthenticationException + { + public AadAuthenticationCantRenewException() + { + } + + public AadAuthenticationCantRenewException(string message) : base(message) + { + } + + public AadAuthenticationCantRenewException(string message, Exception innerException) : base(message, innerException) + { + } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Authentication/AccessTokenCredential.cs b/src/Common/Commands.Common.Authentication/Authentication/AccessTokenCredential.cs new file mode 100644 index 000000000000..8d4b20a3eb1c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/AccessTokenCredential.cs @@ -0,0 +1,50 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public class AccessTokenCredential : SubscriptionCloudCredentials + { + private readonly Guid subscriptionId; + private readonly IAccessToken token; + + public AccessTokenCredential(Guid subscriptionId, IAccessToken token) + { + this.subscriptionId = subscriptionId; + this.token = token; + this.TenantID = token.TenantId; + } + + public override Task ProcessHttpRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + token.AuthorizeRequest((tokenType, tokenValue) => { + request.Headers.Authorization = new AuthenticationHeaderValue(tokenType, tokenValue); + }); + return base.ProcessHttpRequestAsync(request, cancellationToken); + } + + public override string SubscriptionId + { + get { return subscriptionId.ToString(); } + } + + public string TenantID { get; set; } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Authentication/AdalConfiguration.cs b/src/Common/Commands.Common.Authentication/Authentication/AdalConfiguration.cs new file mode 100644 index 000000000000..fab3702cd45c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/AdalConfiguration.cs @@ -0,0 +1,63 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// Class storing the configuration information needed + /// for ADAL to request token from the right AD tenant + /// depending on environment. + /// + public class AdalConfiguration + { + // + // These constants define the default values to use for AD authentication + // against RDFE + // + public const string PowerShellClientId = "1950a258-227b-4e31-a9cf-717495945fc2"; + + public static readonly Uri PowerShellRedirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob"); + + // ID for site to pass to enable EBD (email-based differentiation) + // This gets passed in the call to get the azure branding on the + // login window. Also adding popup flag to handle overly large login windows. + public const string EnableEbdMagicCookie = "site_id=501358&display=popup"; + + public string AdEndpoint { get;set; } + + public bool ValidateAuthority { get; set; } + + public string AdDomain { get; set; } + + public string ClientId { get; set; } + + public Uri ClientRedirectUri { get; set; } + + public string ResourceClientUri { get; set; } + + public TokenCache TokenCache { get; set; } + + public AdalConfiguration() + { + ClientId = PowerShellClientId; + ClientRedirectUri = PowerShellRedirectUri; + ValidateAuthority = true; + AdEndpoint = string.Empty; + ResourceClientUri = "https://management.core.windows.net/"; + } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Authentication/AdalTokenProvider.cs b/src/Common/Commands.Common.Authentication/Authentication/AdalTokenProvider.cs new file mode 100644 index 000000000000..b8bb95f780f7 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/AdalTokenProvider.cs @@ -0,0 +1,68 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using System; +using System.Security; +using System.Windows.Forms; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// A token provider that uses ADAL to retrieve + /// tokens from Azure Active Directory + /// + public class AdalTokenProvider : ITokenProvider + { + private readonly ITokenProvider userTokenProvider; + private readonly ITokenProvider servicePrincipalTokenProvider; + + public AdalTokenProvider() + : this(new ConsoleParentWindow()) + { + } + + public AdalTokenProvider(IWin32Window parentWindow) + { + this.userTokenProvider = new UserTokenProvider(parentWindow); + servicePrincipalTokenProvider = new ServicePrincipalTokenProvider(); + } + + public IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, SecureString password, + AzureAccount.AccountType credentialType) + { + switch (credentialType) + { + case AzureAccount.AccountType.User: + return userTokenProvider.GetAccessToken(config, promptBehavior, userId, password, credentialType); + case AzureAccount.AccountType.ServicePrincipal: + return servicePrincipalTokenProvider.GetAccessToken(config, promptBehavior, userId, password, credentialType); + default: + throw new ArgumentException(Resources.UnknownCredentialType, "credentialType"); + } + } + + public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string clientId, string certificate, AzureAccount.AccountType credentialType) + { + switch (credentialType) + { + case AzureAccount.AccountType.ServicePrincipal: + return servicePrincipalTokenProvider.GetAccessTokenWithCertificate(config, clientId, certificate, credentialType); + default: + throw new ArgumentException(string.Format(Resources.UnsupportedCredentialType, credentialType), "credentialType"); + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/CertificateApplicationCredentialProvider.cs b/src/Common/Commands.Common.Authentication/Authentication/CertificateApplicationCredentialProvider.cs new file mode 100644 index 000000000000..0de1ad9d82e2 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/CertificateApplicationCredentialProvider.cs @@ -0,0 +1,60 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Rest.Azure.Authentication; +using System.Security; +using System.Security.Cryptography.X509Certificates; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// Interface to the certificate store for authentication + /// + internal sealed class CertificateApplicationCredentialProvider : IApplicationAuthenticationProvider + { + private string _certificateThumbprint; + + /// + /// Create a certificate provider + /// + /// + public CertificateApplicationCredentialProvider(string certificateThumbprint) + { + this._certificateThumbprint = certificateThumbprint; + } + + /// + /// Authenticate using certificate thumbprint from the datastore + /// + /// The active directory client id for the application. + /// The intended audience for authentication + /// The AD AuthenticationContext to use + /// + public async Task AuthenticateAsync(string clientId, string audience, AuthenticationContext context) + { + var task = new Task(() => + { + return AzureSession.DataStore.GetCertificate(this._certificateThumbprint); + }); + task.Start(); + var certificate = await task.ConfigureAwait(false); + + return await context.AcquireTokenAsync( + audience, + new ClientAssertionCertificate(clientId, certificate)); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/ConsoleParentWindow.cs b/src/Common/Commands.Common.Authentication/Authentication/ConsoleParentWindow.cs new file mode 100644 index 000000000000..6ee81dca2270 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/ConsoleParentWindow.cs @@ -0,0 +1,35 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Runtime.InteropServices; +using System.Windows.Forms; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// An implementation of that gives the + /// windows handle for the current console window. + /// + public class ConsoleParentWindow : IWin32Window + { + public IntPtr Handle { get { return NativeMethods.GetConsoleWindow(); } } + + static class NativeMethods + { + [DllImport("kernel32.dll")] + public static extern IntPtr GetConsoleWindow(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/CredStore.cs b/src/Common/Commands.Common.Authentication/Authentication/CredStore.cs new file mode 100644 index 000000000000..ca23ed3e6a2e --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/CredStore.cs @@ -0,0 +1,114 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Runtime.ConstrainedExecution; +using System.Runtime.InteropServices; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// Class wrapping PInvoke signatures for Windows Credential store + /// + internal static class CredStore + { + internal enum CredentialType + { + Generic = 1, + } + + internal static class NativeMethods + { + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredRead( + string targetName, + CredentialType type, + int flags, + [Out] out IntPtr pCredential + ); + + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredEnumerate( + string targetName, + int flags, + [Out] out int count, + [Out] out IntPtr pCredential + ); + + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredDelete( + string targetName, + CredentialType type, + int flags + ); + + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredWrite( + IntPtr pCredential, + int flags + ); + + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredFree( + IntPtr pCredential + ); + + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Justification = "Wrapper for native struct")] + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal struct Credential + { + public Credential(string userName, string key, string value) + { + this.flags = 0; + this.type = CredentialType.Generic; + + // set the key in the targetName + this.targetName = key; + + this.targetAlias = null; + this.comment = null; + this.lastWritten.dwHighDateTime = 0; + this.lastWritten.dwLowDateTime = 0; + + // set the value in credentialBlob. + this.credentialBlob = Marshal.StringToHGlobalUni(value); + this.credentialBlobSize = (uint)((value.Length + 1) * 2); + + this.persist = 1; + this.attibuteCount = 0; + this.attributes = IntPtr.Zero; + this.userName = userName; + } + + internal uint flags; + internal CredentialType type; + internal string targetName; + internal string comment; + internal System.Runtime.InteropServices.ComTypes.FILETIME lastWritten; + internal uint credentialBlobSize; + internal IntPtr credentialBlob; + internal uint persist; + internal uint attibuteCount; + internal IntPtr attributes; + internal string targetAlias; + internal string userName; + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/IAccessToken.cs b/src/Common/Commands.Common.Authentication/Authentication/IAccessToken.cs new file mode 100644 index 000000000000..c295a151a318 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/IAccessToken.cs @@ -0,0 +1,31 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public interface IAccessToken + { + void AuthorizeRequest(Action authTokenSetter); + + string AccessToken { get; } + + string UserId { get; } + + string TenantId { get; } + + LoginType LoginType { get; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/ITokenProvider.cs b/src/Common/Commands.Common.Authentication/Authentication/ITokenProvider.cs new file mode 100644 index 000000000000..5819708309a1 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/ITokenProvider.cs @@ -0,0 +1,50 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Models; +using System.Security; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// This interface represents objects that can be used + /// to obtain and manage access tokens. + /// + public interface ITokenProvider + { + /// + /// Get a new login token for the given environment, user credential, + /// and credential type. + /// + /// Configuration. + /// Prompt behavior. + /// User ID/Service principal to get the token for. + /// Secure strings with password/service principal key. + /// Credential type. + /// An access token. + IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, + SecureString password, AzureAccount.AccountType credentialType); + + /// + /// Get a new authentication token for the given environment + /// + /// The ADAL Configuration + /// The id for the given principal + /// The certificate thumbprint for this user + /// The account type + /// An access token, which can be renewed + IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string principalId, string certificateThumbprint, + AzureAccount.AccountType credentialType); + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/KeyStoreApplicationCredentialProvider.cs b/src/Common/Commands.Common.Authentication/Authentication/KeyStoreApplicationCredentialProvider.cs new file mode 100644 index 000000000000..bf9a55c6e3a4 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/KeyStoreApplicationCredentialProvider.cs @@ -0,0 +1,57 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Rest.Azure.Authentication; +using System.Security; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// Interface to the keystore for authentication + /// + internal sealed class KeyStoreApplicationCredentialProvider : IApplicationAuthenticationProvider + { + private string _tenantId; + + /// + /// Create a credential provider + /// + /// + public KeyStoreApplicationCredentialProvider(string tenant) + { + this._tenantId = tenant; + } + + /// + /// Authenticate using the secret for the specified client from the key store + /// + /// The active directory client id for the application. + /// The intended audience for authentication + /// The AD AuthenticationContext to use + /// + public async Task AuthenticateAsync(string clientId, string audience, AuthenticationContext context) + { + var task = new Task(() => + { + return ServicePrincipalKeyStore.GetKey(clientId, _tenantId); + }); + task.Start(); + var key = await task.ConfigureAwait(false); + + return await context.AcquireTokenAsync(audience, new ClientCredential(clientId, key)); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/LoginType.cs b/src/Common/Commands.Common.Authentication/Authentication/LoginType.cs new file mode 100644 index 000000000000..16c96a77657f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/LoginType.cs @@ -0,0 +1,29 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public enum LoginType + { + /// + /// User is logging in with orgid credentials + /// + OrgId, + + /// + /// User is logging in with liveid credentials + /// + LiveId + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/ProtectedFileTokenCache.cs b/src/Common/Commands.Common.Authentication/Authentication/ProtectedFileTokenCache.cs new file mode 100644 index 000000000000..5846aa750614 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/ProtectedFileTokenCache.cs @@ -0,0 +1,121 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; +using System.IO; +using System.Security.Cryptography; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// An implementation of the Adal token cache that stores the cache items + /// in the DPAPI-protected file. + /// + public class ProtectedFileTokenCache : TokenCache + { + private static readonly string CacheFileName = Path.Combine(AzureSession.ProfileDirectory, AzureSession.TokenCacheFile); + + private static readonly object fileLock = new object(); + + private static readonly Lazy instance = new Lazy(() => new ProtectedFileTokenCache()); + + // Initializes the cache against a local file. + // If the file is already present, it loads its content in the ADAL cache + private ProtectedFileTokenCache() + { + Initialize(CacheFileName); + } + + private void Initialize(string fileName) + { + AfterAccess = AfterAccessNotification; + BeforeAccess = BeforeAccessNotification; + lock (fileLock) + { + if (AzureSession.DataStore.FileExists(fileName)) + { + var existingData = AzureSession.DataStore.ReadFileAsBytes(fileName); + if (existingData != null) + { + try + { + Deserialize(ProtectedData.Unprotect(existingData, null, DataProtectionScope.CurrentUser)); + } + catch (CryptographicException) + { + AzureSession.DataStore.DeleteFile(fileName); + } + } + } + } + } + + public ProtectedFileTokenCache(string cacheFile) + { + Initialize(cacheFile); + } + + // Empties the persistent store. + public override void Clear() + { + base.Clear(); + if (AzureSession.DataStore.FileExists(CacheFileName)) + { + AzureSession.DataStore.DeleteFile(CacheFileName); + } + } + + // Triggered right before ADAL needs to access the cache. + // Reload the cache from the persistent store in case it changed since the last access. + void BeforeAccessNotification(TokenCacheNotificationArgs args) + { + lock (fileLock) + { + if (AzureSession.DataStore.FileExists(CacheFileName)) + { + var existingData = AzureSession.DataStore.ReadFileAsBytes(CacheFileName); + if (existingData != null) + { + try + { + Deserialize(ProtectedData.Unprotect(existingData, null, DataProtectionScope.CurrentUser)); + } + catch (CryptographicException) + { + AzureSession.DataStore.DeleteFile(CacheFileName); + } + } + } + } + } + + // Triggered right after ADAL accessed the cache. + void AfterAccessNotification(TokenCacheNotificationArgs args) + { + // if the access operation resulted in a cache update + if (HasStateChanged) + { + lock (fileLock) + { + // reflect changes in the persistent store + AzureSession.DataStore.WriteFile(CacheFileName, + ProtectedData.Protect(Serialize(), null, DataProtectionScope.CurrentUser)); + // once the write operation took place, restore the HasStateChanged bit to false + HasStateChanged = false; + } + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/ServicePrincipalKeyStore.cs b/src/Common/Commands.Common.Authentication/Authentication/ServicePrincipalKeyStore.cs new file mode 100644 index 000000000000..4229221d763c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/ServicePrincipalKeyStore.cs @@ -0,0 +1,117 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Runtime.InteropServices; +using System.Security; +using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// Helper class to store service principal keys and retrieve them + /// from the Windows Credential Store. + /// + public static class ServicePrincipalKeyStore + { + private const string keyStoreUserName = "PowerShellServicePrincipalKey"; + private const string targetNamePrefix = "AzureSession:target="; + + public static void SaveKey(string appId, string tenantId, SecureString serviceKey) + { + var credential = new CredStore.NativeMethods.Credential + { + flags = 0, + type = CredStore.CredentialType.Generic, + targetName = CreateKey(appId, tenantId), + targetAlias = null, + comment = null, + lastWritten = new FILETIME {dwHighDateTime = 0, dwLowDateTime = 0}, + persist = 2, // persist on local machine + attibuteCount = 0, + attributes = IntPtr.Zero, + userName = keyStoreUserName + }; + + // Pull bits out of SecureString to put in credential + IntPtr credPtr = IntPtr.Zero; + try + { + credential.credentialBlob = Marshal.SecureStringToGlobalAllocUnicode(serviceKey); + credential.credentialBlobSize = (uint)(serviceKey.Length * Marshal.SystemDefaultCharSize); + + int size = Marshal.SizeOf(credential); + credPtr = Marshal.AllocHGlobal(size); + + Marshal.StructureToPtr(credential, credPtr, false); + CredStore.NativeMethods.CredWrite(credPtr, 0); + } + finally + { + if (credPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(credPtr); + } + + Marshal.ZeroFreeGlobalAllocUnicode(credential.credentialBlob); + } + } + + public static SecureString GetKey(string appId, string tenantId) + { + IntPtr pCredential = IntPtr.Zero; + try + { + if (CredStore.NativeMethods.CredRead( + CreateKey(appId, tenantId), + CredStore.CredentialType.Generic, 0, + out pCredential)) + { + var credential = (CredStore.NativeMethods.Credential) + Marshal.PtrToStructure(pCredential, typeof (CredStore.NativeMethods.Credential)); + unsafe + { + return new SecureString((char*) (credential.credentialBlob), + (int)(credential.credentialBlobSize/Marshal.SystemDefaultCharSize)); + } + } + return null; + } + catch + { + // we could be running in an environment that does not have credentials store + } + finally + { + if (pCredential != IntPtr.Zero) + { + CredStore.NativeMethods.CredFree(pCredential); + } + } + + return null; + } + + + public static void DeleteKey(string appId, string tenantId) + { + CredStore.NativeMethods.CredDelete(CreateKey(appId, tenantId), CredStore.CredentialType.Generic, 0); + } + + private static string CreateKey(string appId, string tenantId) + { + return string.Format("{0}AppId={1};Tenant={2}", targetNamePrefix, appId, tenantId); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Authentication/ServicePrincipalTokenProvider.cs b/src/Common/Commands.Common.Authentication/Authentication/ServicePrincipalTokenProvider.cs new file mode 100644 index 000000000000..bd1a6c8c6e01 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/ServicePrincipalTokenProvider.cs @@ -0,0 +1,166 @@ +// ---------------------------------------------------------------------------------- +// Copyright Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; +using System.Collections.Generic; +using System.Security; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + internal class ServicePrincipalTokenProvider : ITokenProvider + { + private static readonly TimeSpan expirationThreshold = TimeSpan.FromMinutes(5); + + public IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, SecureString password, + AzureAccount.AccountType credentialType) + { + if (credentialType == AzureAccount.AccountType.User) + { + throw new ArgumentException(string.Format(Resources.InvalidCredentialType, "User"), "credentialType"); + } + return new ServicePrincipalAccessToken(config, AcquireTokenWithSecret(config, userId, password), this.RenewWithSecret, userId); + } + + public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string clientId, string certificateThumbprint, AzureAccount.AccountType credentialType) + { + if (credentialType == AzureAccount.AccountType.User) + { + throw new ArgumentException(string.Format(Resources.InvalidCredentialType, "User"), "credentialType"); + } + return new ServicePrincipalAccessToken(config, AcquireTokenWithCertificate(config, clientId, certificateThumbprint), + (adalConfig, appId) => this.RenewWithCertificate(adalConfig, appId, certificateThumbprint), clientId); + } + + private AuthenticationContext GetContext(AdalConfiguration config) + { + string authority = config.AdEndpoint + config.AdDomain; + return new AuthenticationContext(authority, config.ValidateAuthority, config.TokenCache); + } + + private AuthenticationResult AcquireTokenWithSecret(AdalConfiguration config, string appId, SecureString appKey) + { + if (appKey == null) + { + return RenewWithSecret(config, appId); + } + + StoreAppKey(appId, config.AdDomain, appKey); + var credential = new ClientCredential(appId, appKey); + var context = GetContext(config); + return context.AcquireToken(config.ResourceClientUri, credential); + } + + private AuthenticationResult AcquireTokenWithCertificate(AdalConfiguration config, string appId, + string thumbprint) + { + var certificate = AzureSession.DataStore.GetCertificate(thumbprint); + if (certificate == null) + { + throw new ArgumentException(string.Format(Resources.CertificateNotFoundInStore, thumbprint)); + } + + var context = GetContext(config); + return context.AcquireToken(config.ResourceClientUri, new ClientAssertionCertificate(appId, certificate)); + } + + private AuthenticationResult RenewWithSecret(AdalConfiguration config, string appId) + { + TracingAdapter.Information(Resources.SPNRenewTokenTrace, appId, config.AdDomain, config.AdEndpoint, + config.ClientId, config.ClientRedirectUri); + using (SecureString appKey = LoadAppKey(appId, config.AdDomain)) + { + if (appKey == null) + { + throw new KeyNotFoundException(string.Format(Resources.ServiceKeyNotFound, appId)); + } + return AcquireTokenWithSecret(config, appId, appKey); + } + } + + private AuthenticationResult RenewWithCertificate(AdalConfiguration config, string appId, + string thumbprint) + { + TracingAdapter.Information(Resources.SPNRenewTokenTrace, appId, config.AdDomain, config.AdEndpoint, + config.ClientId, config.ClientRedirectUri); + return AcquireTokenWithCertificate(config, appId, thumbprint); + } + + private SecureString LoadAppKey(string appId, string tenantId) + { + return ServicePrincipalKeyStore.GetKey(appId, tenantId); + } + + private void StoreAppKey(string appId, string tenantId, SecureString appKey) + { + ServicePrincipalKeyStore.SaveKey(appId, tenantId, appKey); + } + + + private class ServicePrincipalAccessToken : IAccessToken + { + internal readonly AdalConfiguration Configuration; + internal AuthenticationResult AuthResult; + private readonly Func tokenRenewer; + private readonly string appId; + + public ServicePrincipalAccessToken(AdalConfiguration configuration, AuthenticationResult authResult, Func tokenRenewer, string appId) + { + Configuration = configuration; + AuthResult = authResult; + this.tokenRenewer = tokenRenewer; + this.appId = appId; + } + + public void AuthorizeRequest(Action authTokenSetter) + { + if (IsExpired) + { + AuthResult = tokenRenewer(Configuration, appId); + } + + authTokenSetter(AuthResult.AccessTokenType, AuthResult.AccessToken); + } + + public string UserId { get { return appId; } } + public string AccessToken { get { return AuthResult.AccessToken; } } + public LoginType LoginType { get { return LoginType.OrgId; } } + public string TenantId { get { return this.Configuration.AdDomain; } } + + private bool IsExpired + { + get + { +#if DEBUG + if (Environment.GetEnvironmentVariable("FORCE_EXPIRED_ACCESS_TOKEN") != null) + { + return true; + } +#endif + + var expiration = AuthResult.ExpiresOn; + var currentTime = DateTimeOffset.UtcNow; + var timeUntilExpiration = expiration - currentTime; + TracingAdapter.Information(Resources.SPNTokenExpirationCheckTrace, expiration, currentTime, + expirationThreshold, timeUntilExpiration); + return timeUntilExpiration < expirationThreshold; + } + } + } + } +} + diff --git a/src/Common/Commands.Common.Authentication/Authentication/ShowDialog.cs b/src/Common/Commands.Common.Authentication/Authentication/ShowDialog.cs new file mode 100644 index 000000000000..3ca6ac512309 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/ShowDialog.cs @@ -0,0 +1,23 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public enum ShowDialog + { + Auto, + Always, + Never + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Authentication/UserTokenProvider.cs b/src/Common/Commands.Common.Authentication/Authentication/UserTokenProvider.cs new file mode 100644 index 000000000000..54aa45bc5564 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Authentication/UserTokenProvider.cs @@ -0,0 +1,301 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Authentication; +using System.Threading; +using System.Windows.Forms; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// A token provider that uses ADAL to retrieve + /// tokens from Azure Active Directory for user + /// credentials. + /// + internal class UserTokenProvider : ITokenProvider + { + private readonly IWin32Window parentWindow; + + public UserTokenProvider(IWin32Window parentWindow) + { + this.parentWindow = parentWindow; + } + + public IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, SecureString password, + AzureAccount.AccountType credentialType) + { + if (credentialType != AzureAccount.AccountType.User) + { + throw new ArgumentException(string.Format(Resources.InvalidCredentialType, "User"), "credentialType"); + } + + return new AdalAccessToken(AcquireToken(config, promptBehavior, userId, password), this, config); + } + + private readonly static TimeSpan expirationThreshold = TimeSpan.FromMinutes(5); + + private bool IsExpired(AdalAccessToken token) + { +#if DEBUG + if (Environment.GetEnvironmentVariable("FORCE_EXPIRED_ACCESS_TOKEN") != null) + { + return true; + } +#endif + var expiration = token.AuthResult.ExpiresOn; + var currentTime = DateTimeOffset.UtcNow; + var timeUntilExpiration = expiration - currentTime; + TracingAdapter.Information(Resources.UPNTokenExpirationCheckTrace, expiration, currentTime, expirationThreshold, + timeUntilExpiration); + return timeUntilExpiration < expirationThreshold; + } + + private void Renew(AdalAccessToken token) + { + TracingAdapter.Information(Resources.UPNRenewTokenTrace, token.AuthResult.AccessTokenType, token.AuthResult.ExpiresOn, + token.AuthResult.IsMultipleResourceRefreshToken, token.AuthResult.TenantId, token.UserId); + var user = token.AuthResult.UserInfo; + if (user != null) + { + TracingAdapter.Information(Resources.UPNRenewTokenUserInfoTrace, user.DisplayableId, user.FamilyName, + user.GivenName, user.IdentityProvider, user.UniqueId); + } + if (IsExpired(token)) + { + TracingAdapter.Information(Resources.UPNExpiredTokenTrace); + AuthenticationResult result = AcquireToken(token.Configuration, ShowDialog.Never, token.UserId, null); + + if (result == null) + { + throw new AuthenticationException(Resources.ExpiredRefreshToken); + } + else + { + token.AuthResult = result; + } + } + } + + private AuthenticationContext CreateContext(AdalConfiguration config) + { + return new AuthenticationContext(config.AdEndpoint + config.AdDomain, config.ValidateAuthority, config.TokenCache) + { + OwnerWindow = parentWindow + }; + } + + // We have to run this in a separate thread to guarantee that it's STA. This method + // handles the threading details. + private AuthenticationResult AcquireToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, + SecureString password) + { + AuthenticationResult result = null; + Exception ex = null; + if (promptBehavior == ShowDialog.Never) + { + result = SafeAquireToken(config, promptBehavior, userId, password, out ex); + } + else + { + var thread = new Thread(() => + { + result = SafeAquireToken(config, promptBehavior, userId, password, out ex); + }); + + thread.SetApartmentState(ApartmentState.STA); + thread.Name = "AcquireTokenThread"; + thread.Start(); + thread.Join(); + } + + if (ex != null) + { + var adex = ex as AdalException; + if (adex != null) + { + if (adex.ErrorCode == AdalError.AuthenticationCanceled) + { + throw new AadAuthenticationCanceledException(adex.Message, adex); + } + } + if (ex is AadAuthenticationException) + { + throw ex; + } + throw new AadAuthenticationFailedException(GetExceptionMessage(ex), ex); + } + + return result; + } + + private AuthenticationResult SafeAquireToken( + AdalConfiguration config, + ShowDialog showDialog, + string userId, + SecureString password, + out Exception ex) + { + try + { + ex = null; + var promptBehavior = (PromptBehavior)Enum.Parse(typeof(PromptBehavior), showDialog.ToString()); + + return DoAcquireToken(config, promptBehavior, userId, password); + } + catch (AdalException adalEx) + { + if (adalEx.ErrorCode == AdalError.UserInteractionRequired || + adalEx.ErrorCode == AdalError.MultipleTokensMatched) + { + string message = Resources.AdalUserInteractionRequired; + if (adalEx.ErrorCode == AdalError.MultipleTokensMatched) + { + message = Resources.AdalMultipleTokens; + } + + ex = new AadAuthenticationFailedWithoutPopupException(message, adalEx); + } + else if (adalEx.ErrorCode == AdalError.MissingFederationMetadataUrl) + { + ex = new AadAuthenticationFailedException(Resources.CredentialOrganizationIdMessage, adalEx); + } + else + { + ex = adalEx; + } + } + catch (Exception threadEx) + { + ex = threadEx; + } + return null; + } + + private AuthenticationResult DoAcquireToken(AdalConfiguration config, PromptBehavior promptBehavior, string userId, + SecureString password) + { + AuthenticationResult result; + var context = CreateContext(config); + + TracingAdapter.Information(Resources.UPNAcquireTokenContextTrace, context.Authority, context.CorrelationId, + context.ValidateAuthority); + TracingAdapter.Information(Resources.UPNAcquireTokenConfigTrace, config.AdDomain, config.AdEndpoint, + config.ClientId, config.ClientRedirectUri); + if (string.IsNullOrEmpty(userId)) + { + if (promptBehavior != PromptBehavior.Never) + { + ClearCookies(); + } + + result = context.AcquireToken(config.ResourceClientUri, config.ClientId, + config.ClientRedirectUri, promptBehavior, + UserIdentifier.AnyUser, AdalConfiguration.EnableEbdMagicCookie); + } + else + { + if (password == null) + { + result = context.AcquireToken(config.ResourceClientUri, config.ClientId, + config.ClientRedirectUri, promptBehavior, + new UserIdentifier(userId, UserIdentifierType.RequiredDisplayableId), + AdalConfiguration.EnableEbdMagicCookie); + } + else + { + UserCredential credential = new UserCredential(userId, password); + result = context.AcquireToken(config.ResourceClientUri, config.ClientId, credential); + } + } + return result; + } + + private string GetExceptionMessage(Exception ex) + { + string message = ex.Message; + if (ex.InnerException != null) + { + message += ": " + ex.InnerException.Message; + } + return message; + } + /// + /// Implementation of using data from ADAL + /// + private class AdalAccessToken : IAccessToken + { + internal readonly AdalConfiguration Configuration; + internal AuthenticationResult AuthResult; + private readonly UserTokenProvider tokenProvider; + + public AdalAccessToken(AuthenticationResult authResult, UserTokenProvider tokenProvider, AdalConfiguration configuration) + { + AuthResult = authResult; + this.tokenProvider = tokenProvider; + Configuration = configuration; + } + + public void AuthorizeRequest(Action authTokenSetter) + { + tokenProvider.Renew(this); + authTokenSetter(AuthResult.AccessTokenType, AuthResult.AccessToken); + } + + public string AccessToken { get { return AuthResult.AccessToken; } } + public string UserId { get { return AuthResult.UserInfo.DisplayableId; } } + + public string TenantId { get { return AuthResult.TenantId; } } + + public LoginType LoginType + { + get + { + if (AuthResult.UserInfo.IdentityProvider != null) + { + return LoginType.LiveId; + } + return LoginType.OrgId; + } + } + } + + + private void ClearCookies() + { + NativeMethods.InternetSetOption(IntPtr.Zero, NativeMethods.INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0); + } + + private static class NativeMethods + { + internal const int INTERNET_OPTION_END_BROWSER_SESSION = 42; + + [DllImport("wininet.dll", SetLastError = true)] + internal static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, + int lpdwBufferLength); + } + + public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string clientId, string certificate, AzureAccount.AccountType credentialType) + { + throw new NotImplementedException(); + } + } +} + diff --git a/src/Common/Commands.Common.Authentication/AzureSession.cs b/src/Common/Commands.Common.Authentication/AzureSession.cs new file mode 100644 index 000000000000..51108e9c628c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/AzureSession.cs @@ -0,0 +1,89 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; +using System.IO; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// Represents current Azure session. + /// + public static class AzureSession + { + /// + /// Gets or sets Azure client factory. + /// + public static IClientFactory ClientFactory { get; set; } + + /// + /// Gets or sets Azure authentication factory. + /// + public static IAuthenticationFactory AuthenticationFactory { get; set; } + + /// + /// Gets or sets data persistence store. + /// + public static IDataStore DataStore { get; set; } + + /// + /// Gets or sets the token cache store. + /// + public static TokenCache TokenCache { get; set; } + + /// + /// Gets or sets profile directory. + /// + public static string ProfileDirectory { get; set; } + + /// + /// Gets or sets token cache file path. + /// + public static string TokenCacheFile { get; set; } + + /// + /// Gets or sets profile file name. + /// + public static string ProfileFile { get; set; } + + /// + /// Gets or sets file name for the migration backup. + /// + public static string OldProfileFileBackup { get; set; } + + /// + /// Gets or sets old profile file name. + /// + public static string OldProfileFile { get; set; } + + static AzureSession() + { + ClientFactory = new ClientFactory(); + AuthenticationFactory = new AuthenticationFactory(); + DataStore = new MemoryDataStore(); + TokenCache = new TokenCache(); + OldProfileFile = "WindowsAzureProfile.xml"; + OldProfileFileBackup = "WindowsAzureProfile.xml.bak"; + ProfileDirectory = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), + Resources.AzureDirectoryName); ; + ProfileFile = "AzureProfile.json"; + TokenCacheFile = "TokenCache.dat"; + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Commands.Common.Authentication.csproj b/src/Common/Commands.Common.Authentication/Commands.Common.Authentication.csproj new file mode 100644 index 000000000000..0e7ed8e59545 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Commands.Common.Authentication.csproj @@ -0,0 +1,182 @@ + + + + + Debug + AnyCPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E} + Library + Properties + Microsoft.Azure.Commands.Common.Authentication + Commands.Common.Authentication + v4.5 + 512 + ..\..\ + true + /assemblyCompareMode:StrongNameIgnoringVersion + 06e19c11 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + true + false + true + + + pdbonly + true + bin\Release\ + TRACE;SIGN + AnyCPU + bin\Release\Management.Utilities.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.cs + prompt + MinimumRecommendedRules.ruleset + ;$(ProgramFiles)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\Rule Sets + ;$(ProgramFiles)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop\Rules + true + MSSharedLibKey.snk + true + true + false + true + + + + ..\..\packages\Hyak.Common.1.0.3\lib\net45\Hyak.Common.dll + True + + + ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll + True + + + ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll + True + + + ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + True + + + ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + + + ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + True + + + ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + True + + + ..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + True + + + ..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + True + + + + + + + ..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Extensions.dll + True + + + ..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Common/AzureModule.cs b/src/Common/Commands.Common.Authentication/Common/AzureModule.cs new file mode 100644 index 000000000000..a5df2c70f95d --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Common/AzureModule.cs @@ -0,0 +1,23 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public enum AzureModule + { + AzureServiceManagement, + AzureResourceManager, + AzureProfile + } +} diff --git a/src/Common/Commands.Common.Authentication/Common/ProfileData.cs b/src/Common/Commands.Common.Authentication/Common/ProfileData.cs new file mode 100644 index 000000000000..25aa6d2b8acc --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Common/ProfileData.cs @@ -0,0 +1,272 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + /// + /// This class provides the representation of + /// data loaded and saved into data files + /// for AzureSMProfile. + /// + [DataContract] + public class ProfileData + { + [DataMember] + public string DefaultEnvironmentName { get; set; } + + [DataMember] + public IEnumerable Environments { get; set; } + + [DataMember] + public IEnumerable Subscriptions { get; set; } + } + + /// + /// This class provides the representation of + /// data loaded and saved into data files for + /// an individual Azure environment + /// + [DataContract] + public class AzureEnvironmentData + { + public AzureEnvironment ToAzureEnvironment() + { + return new AzureEnvironment + { + Name = this.Name, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, this.ActiveDirectoryServiceEndpointResourceId }, + { AzureEnvironment.Endpoint.AdTenant, this.AdTenantUrl }, + { AzureEnvironment.Endpoint.Gallery, this.GalleryEndpoint }, + { AzureEnvironment.Endpoint.ManagementPortalUrl, this.ManagementPortalUrl }, + { AzureEnvironment.Endpoint.PublishSettingsFileUrl, this.PublishSettingsFileUrl }, + { AzureEnvironment.Endpoint.ResourceManager, this.ResourceManagerEndpoint }, + { AzureEnvironment.Endpoint.ServiceManagement, this.ServiceEndpoint }, + { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, this.SqlDatabaseDnsSuffix }, + { AzureEnvironment.Endpoint.StorageEndpointSuffix, this.StorageEndpointSuffix }, + { AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, this.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix }, + { AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, this.AzureDataLakeStoreFileSystemEndpointSuffix }, + } + }; + } + + [DataMember] + public string Name { get; set; } + + [DataMember] + public string PublishSettingsFileUrl { get; set; } + + [DataMember] + public string ServiceEndpoint { get; set; } + + [DataMember] + public string ResourceManagerEndpoint { get; set; } + + [DataMember] + public string ManagementPortalUrl { get; set; } + + [DataMember] + public string StorageEndpointSuffix { get; set; } + + [DataMember] + public string AdTenantUrl { get; set; } + + [DataMember] + public string CommonTenantId { get; set; } + + [DataMember] + public string GalleryEndpoint { get; set; } + + [DataMember] + public string ActiveDirectoryServiceEndpointResourceId { get; set; } + + [DataMember] + public string SqlDatabaseDnsSuffix { get; set; } + + [DataMember] + public string TrafficManagerEndpointSuffix { get; set; } + + [DataMember] + public string AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix { get; set; } + + [DataMember] + public string AzureDataLakeStoreFileSystemEndpointSuffix { get; set; } + } + + /// + /// This class provides the representation of data loaded + /// and saved into data file for an individual Azure subscription. + /// + [DataContract] + public class AzureSubscriptionData + { + /// + /// Constructor used by DataContractSerializer + /// + public AzureSubscriptionData() + { + } + + public AzureSubscription ToAzureSubscription(List envs) + { + AzureSubscription subscription = new AzureSubscription(); + try + { + subscription.Id = new Guid(this.SubscriptionId); + } + catch (Exception ex) + { + throw new ArgumentException("Subscription ID is not a valid GUID.", ex); + } + subscription.Name = Name; + + // Logic to detect what is the subscription environment relies on having ManagementEndpoint (i.e. RDFE endpoint) set already on the subscription + List allEnvs = envs.Union(AzureEnvironment.PublicEnvironments.Values).ToList(); + AzureEnvironment env = allEnvs.FirstOrDefault(e => e.IsEndpointSetToValue(AzureEnvironment.Endpoint.ServiceManagement, this.ManagementEndpoint)); + + if (env != null) + { + subscription.Environment = env.Name; + } + else + { + subscription.Environment = EnvironmentName.AzureCloud; + } + + if (!string.IsNullOrEmpty(this.ManagementCertificate)) + { + subscription.Account = this.ManagementCertificate; + } + + if (!string.IsNullOrEmpty(this.ActiveDirectoryUserId)) + { + subscription.Account = this.ActiveDirectoryUserId; + } + + if (!string.IsNullOrEmpty(this.ActiveDirectoryTenantId)) + { + subscription.SetProperty(AzureSubscription.Property.Tenants, ActiveDirectoryTenantId); + } + + if (this.IsDefault) + { + subscription.SetProperty(AzureSubscription.Property.Default, "True"); + } + + if (!string.IsNullOrEmpty(this.CloudStorageAccount)) + { + subscription.Properties.Add(AzureSubscription.Property.StorageAccount, this.CloudStorageAccount); + } + + if (this.RegisteredResourceProviders.Count() > 0) + { + StringBuilder providers = new StringBuilder(); + subscription.Properties.Add(AzureSubscription.Property.RegisteredResourceProviders, + string.Join(",", RegisteredResourceProviders)); + } + + return subscription; + } + + public IEnumerable ToAzureAccounts() + { + if (!string.IsNullOrEmpty(ActiveDirectoryUserId)) + { + AzureAccount userAccount = new AzureAccount + { + Id = ActiveDirectoryUserId, + Type = AzureAccount.AccountType.User + }; + + userAccount.SetProperty(AzureAccount.Property.Subscriptions, new Guid(this.SubscriptionId).ToString()); + + if (!string.IsNullOrEmpty(ActiveDirectoryTenantId)) + { + userAccount.SetProperty(AzureAccount.Property.Tenants, ActiveDirectoryTenantId); + } + + yield return userAccount; + } + + if (!string.IsNullOrEmpty(ManagementCertificate)) + { + AzureAccount certificateAccount = new AzureAccount + { + Id = ManagementCertificate, + Type = AzureAccount.AccountType.Certificate + }; + + certificateAccount.SetProperty(AzureAccount.Property.Subscriptions, new Guid(this.SubscriptionId).ToString()); + + yield return certificateAccount; + } + } + + [DataMember] + public string Name { get; set; } + + [DataMember] + public string SubscriptionId { get; set; } + + [DataMember] + public string ManagementEndpoint { get; set; } + + [DataMember] + public string ResourceManagerEndpoint { get; set; } + + [DataMember] + public string ActiveDirectoryEndpoint { get; set; } + + [DataMember] + public string ActiveDirectoryTenantId { get; set; } + + [DataMember] + public string ActiveDirectoryUserId { get; set; } + + [DataMember] + public string LoginType { get; set; } + + [DataMember] + public bool IsDefault { get; set; } + + [DataMember] + public string ManagementCertificate { get; set; } + + [DataMember] + public string CloudStorageAccount { get; set; } + + [DataMember] + public IEnumerable RegisteredResourceProviders { get; set; } + + [DataMember] + public string GalleryEndpoint { get; set; } + + [DataMember] + public string ActiveDirectoryServiceEndpointResourceId { get; set; } + + [DataMember] + public string SqlDatabaseDnsSuffix { get; set; } + + [DataMember] + public string TrafficManagerEndpointSuffix { get; set; } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Common/Validate.cs b/src/Common/Commands.Common.Authentication/Common/Validate.cs new file mode 100644 index 000000000000..b1f555fa9a9f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Common/Validate.cs @@ -0,0 +1,218 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using System; +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Runtime.InteropServices; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public static class Validate + { + [Flags] + enum InternetConnectionState : int + { + INTERNET_CONNECTION_MODEM = 0x1, + INTERNET_CONNECTION_LAN = 0x2, + INTERNET_CONNECTION_PROXY = 0x4, + INTERNET_RAS_INSTALLED = 0x10, + INTERNET_CONNECTION_OFFLINE = 0x20, + INTERNET_CONNECTION_CONFIGURED = 0x40 + } + + [SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Justification = "Not necessary for a single p-invoke")] + [DllImport("WININET", CharSet = CharSet.Auto)] + static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved); + + /// + /// Validates against given string if null or empty. + /// + /// string variable to validate + /// This parameter is used when the validation fails. It can contain actual message to display + /// or parameter name to display with default message + /// Indicates either to use messageData as actual message or parameter name + public static void ValidateStringIsNullOrEmpty(string data, string messageData, bool useDefaultMessage = true) + { + if (string.IsNullOrEmpty(data)) + { + // In this case use messageData parameter as name for null/empty string. + if (useDefaultMessage) + { + throw new ArgumentException(string.Format(Resources.InvalidOrEmptyArgumentMessage, messageData)); + } + else + { + // Use the message provided by the user + throw new ArgumentException(messageData); + } + } + } + + public static void ValidatePathName(string element, string exceptionMessage) + { + if (element.IndexOfAny(Path.GetInvalidPathChars()) != -1) + { + throw new ArgumentException(exceptionMessage); + } + } + + public static void ValidateFileName(string element, string exceptionMessage = null) + { + try + { + string fileName = Path.GetFileName(element); + + if (fileName.IndexOfAny(Path.GetInvalidFileNameChars()) != -1) + { + throw new ArgumentException(exceptionMessage ?? string.Empty); + } + } + catch + { + throw new ArgumentException(exceptionMessage ?? string.Empty); + } + } + + public static void ValidateFileExists(string filePath, string exceptionMessage) + { + if (!FileUtilities.DataStore.FileExists(filePath)) + { + throw new FileNotFoundException(exceptionMessage); + } + } + + public static void ValidateDirectoryExists(string directory, string exceptionMessage = null) + { + string msg = string.Format(Resources.PathDoesNotExist, directory); + + if (!FileUtilities.DataStore.DirectoryExists(directory)) + { + if (!string.IsNullOrEmpty(exceptionMessage)) + { + msg = exceptionMessage; + } + + throw new FileNotFoundException(msg); + } + } + + public static void ValidateNullArgument(object item, string exceptionMessage) + { + if (item == null) + { + throw new ArgumentException(exceptionMessage); + } + } + + public static void ValidateFileExtention(string filePath, string desiredExtention) + { + bool invalidExtension = Convert.ToBoolean(string.Compare(Path.GetExtension(filePath), desiredExtention, true)); + + if (invalidExtension) + { + throw new ArgumentException(string.Format(Resources.InvalidFileExtension, filePath, desiredExtention)); + } + } + + public static void ValidateDnsName(string dnsName, string parameterName) + { + if (Uri.CheckHostName(dnsName) != UriHostNameType.Dns || dnsName.EndsWith("-")) + { + throw new ArgumentException(string.Format(Resources.InvalidDnsName, dnsName, parameterName)); + } + } + + public static void ValidateDnsDoesNotExist(string dnsName) + { + try + { + Dns.GetHostEntry(dnsName); + // Dns does exist throw exception + // + throw new ArgumentException(string.Format(Resources.ServiceNameExists, dnsName)); + } + catch (SocketException) + { + // Dns doesn't exist + } + } + + public static void ValidateInternetConnection() + { + InternetConnectionState flags = 0; + + if (!InternetGetConnectedState(ref flags, 0)) + { + throw new Exception(Resources.NoInternetConnection); + } + } + + public static void HasWhiteCharacter(string text, string exceptionMessage = null) + { + if (text.Any(char.IsWhiteSpace)) + { + throw new ArgumentException(exceptionMessage ?? string.Empty); + } + } + + /// + /// Make validation for given path. + /// + /// Path to validate + /// message to display if this validation failed + public static void ValidatePath(string path, string exceptionMessage) + { + ValidateStringIsNullOrEmpty(path, exceptionMessage, false); + ValidatePathName(path, exceptionMessage); + } + + /// + /// Validates against given directory + /// + /// Directory name + /// Name which you use to identify that directory to user (i.e. AzureSdkDirectory) + public static void ValidateDirectoryFull(string directoryNameOnDisk, string directoryName) + { + BasicFileAndDirectoryValidation(directoryNameOnDisk, directoryName); + ValidateDirectoryExists(directoryNameOnDisk, string.Format(Resources.PathDoesNotExistForElement, directoryName, directoryNameOnDisk)); + } + + private static void BasicFileAndDirectoryValidation(string fullPath, string name) + { + ValidateStringIsNullOrEmpty(fullPath, name); + ValidateFileName(fullPath, Resources.IllegalPath); + string directoryPath = Path.GetDirectoryName(fullPath); + if (!string.IsNullOrEmpty(directoryPath)) + { + ValidatePath(fullPath, Resources.IllegalPath); + } + } + + /// + /// Validates against given file + /// + /// File name + /// Name which you use to identify that directory to user (i.e. Service Settings) + public static void ValidateFileFull(string fileNameOnDisk, string fileName) + { + BasicFileAndDirectoryValidation(fileNameOnDisk, fileName); + ValidateFileExists(fileNameOnDisk, string.Format(Resources.PathDoesNotExistForElement, fileName, fileNameOnDisk)); + } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Extensions/CloudExceptionExtensions.cs b/src/Common/Commands.Common.Authentication/Extensions/CloudExceptionExtensions.cs new file mode 100644 index 000000000000..f51f6698d518 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Extensions/CloudExceptionExtensions.cs @@ -0,0 +1,50 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +using Hyak.Common; +using System.Linq; + +namespace Microsoft.Azure.Common +{ + public static class CloudExceptionExtensions + { + public static string GetRequestId(this CloudException exception) + { + if(exception == null || + exception.Response == null || + exception.Response.Headers == null || + !exception.Response.Headers.Keys.Contains("x-ms-request-id")) + { + return null; + } + + return exception.Response.Headers["x-ms-request-id"].FirstOrDefault(); + + } + public static string GetRoutingRequestId(this CloudException exception) + { + if (exception == null || + exception.Response == null || + exception.Response.Headers == null || + !exception.Response.Headers.Keys.Contains("x-ms-routing-request-id")) + { + return null; + } + + return exception.Response.Headers["x-ms-routing-request-id"].FirstOrDefault(); + + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Factories/AuthenticationFactory.cs b/src/Common/Commands.Common.Authentication/Factories/AuthenticationFactory.cs new file mode 100644 index 000000000000..1d49be6be746 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Factories/AuthenticationFactory.cs @@ -0,0 +1,302 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using System; +using System.Linq; +using System.Security; +using Hyak.Common; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Rest; +using Microsoft.Rest.Azure.Authentication; + +namespace Microsoft.Azure.Commands.Common.Authentication.Factories +{ + public class AuthenticationFactory : IAuthenticationFactory + { + public const string CommonAdTenant = "Common"; + + public AuthenticationFactory() + { + TokenProvider = new AdalTokenProvider(); + } + + public ITokenProvider TokenProvider { get; set; } + + public IAccessToken Authenticate( + AzureAccount account, + AzureEnvironment environment, + string tenant, + SecureString password, + ShowDialog promptBehavior, + TokenCache tokenCache, + AzureEnvironment.Endpoint resourceId = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId) + { + var configuration = GetAdalConfiguration(environment, tenant, resourceId, tokenCache); + + TracingAdapter.Information(Resources.AdalAuthConfigurationTrace, configuration.AdDomain, configuration.AdEndpoint, + configuration.ClientId, configuration.ClientRedirectUri, configuration.ResourceClientUri, configuration.ValidateAuthority); + IAccessToken token; + if (account.IsPropertySet(AzureAccount.Property.CertificateThumbprint)) + { + var thumbprint = account.GetProperty(AzureAccount.Property.CertificateThumbprint); + token = TokenProvider.GetAccessTokenWithCertificate(configuration, account.Id, thumbprint, account.Type); + } + else + { + + token = TokenProvider.GetAccessToken(configuration, promptBehavior, account.Id, password, account.Type); + } + + account.Id = token.UserId; + return token; + } + + public IAccessToken Authenticate( + AzureAccount account, + AzureEnvironment environment, + string tenant, + SecureString password, + ShowDialog promptBehavior, + AzureEnvironment.Endpoint resourceId = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId) + { + return Authenticate(account, environment, tenant, password, promptBehavior, AzureSession.TokenCache, resourceId); + } + + public SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context) + { + return GetSubscriptionCloudCredentials(context, AzureEnvironment.Endpoint.ServiceManagement); + } + + public SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context, AzureEnvironment.Endpoint targetEndpoint) + { + if (context.Subscription == null) + { + var exceptionMessage = targetEndpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.InvalidDefaultSubscription + : Resources.NoSubscriptionInContext; + throw new ApplicationException(exceptionMessage); + } + + if (context.Account == null) + { + var exceptionMessage = targetEndpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.AccountNotFound + : Resources.ArmAccountNotFound; + throw new ArgumentException(exceptionMessage); + } + + if (context.Account.Type == AzureAccount.AccountType.Certificate) + { + var certificate = AzureSession.DataStore.GetCertificate(context.Account.Id); + return new CertificateCloudCredentials(context.Subscription.Id.ToString(), certificate); + } + + if (context.Account.Type == AzureAccount.AccountType.AccessToken) + { + return new TokenCloudCredentials(context.Subscription.Id.ToString(), context.Account.GetProperty(AzureAccount.Property.AccessToken)); + } + + string tenant = null; + + if (context.Subscription != null && context.Account != null) + { + tenant = context.Subscription.GetPropertyAsArray(AzureSubscription.Property.Tenants) + .Intersect(context.Account.GetPropertyAsArray(AzureAccount.Property.Tenants)) + .FirstOrDefault(); + } + + if (tenant == null && context.Tenant != null && context.Tenant.Id != Guid.Empty) + { + tenant = context.Tenant.Id.ToString(); + } + + if (tenant == null) + { + var exceptionMessage = targetEndpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.TenantNotFound + : Resources.NoTenantInContext; + throw new ArgumentException(exceptionMessage); + } + + try + { + TracingAdapter.Information(Resources.UPNAuthenticationTrace, + context.Account.Id, context.Environment.Name, tenant); + var tokenCache = AzureSession.TokenCache; + if (context.TokenCache != null && context.TokenCache.Length > 0) + { + tokenCache = new TokenCache(context.TokenCache); + } + + var token = Authenticate(context.Account, context.Environment, + tenant, null, ShowDialog.Never, tokenCache, context.Environment.GetTokenAudience(targetEndpoint)); + + if (context.TokenCache != null && context.TokenCache.Length > 0) + { + context.TokenCache = tokenCache.Serialize(); + } + + TracingAdapter.Information(Resources.UPNAuthenticationTokenTrace, + token.LoginType, token.TenantId, token.UserId); + return new AccessTokenCredential(context.Subscription.Id, token); + } + catch (Exception ex) + { + TracingAdapter.Information(Resources.AdalAuthException, ex.Message); + var exceptionMessage = targetEndpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.InvalidSubscriptionState + : Resources.InvalidArmContext; + throw new ArgumentException(exceptionMessage, ex); + } + } + + public ServiceClientCredentials GetServiceClientCredentials(AzureContext context) + { + return GetServiceClientCredentials(context, + AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId); + } + + public ServiceClientCredentials GetServiceClientCredentials(AzureContext context, AzureEnvironment.Endpoint targetEndpoint) + { + if (context.Account == null) + { + throw new ArgumentException(Resources.ArmAccountNotFound); + } + + if (context.Account.Type == AzureAccount.AccountType.Certificate) + { + throw new NotSupportedException(AzureAccount.AccountType.Certificate.ToString()); + } + + if (context.Account.Type == AzureAccount.AccountType.AccessToken) + { + return new TokenCredentials(context.Account.GetProperty(AzureAccount.Property.AccessToken)); + } + + string tenant = null; + + if (context.Subscription != null && context.Account != null) + { + tenant = context.Subscription.GetPropertyAsArray(AzureSubscription.Property.Tenants) + .Intersect(context.Account.GetPropertyAsArray(AzureAccount.Property.Tenants)) + .FirstOrDefault(); + } + + if (tenant == null && context.Tenant != null && context.Tenant.Id != Guid.Empty) + { + tenant = context.Tenant.Id.ToString(); + } + + if (tenant == null) + { + throw new ArgumentException(Resources.NoTenantInContext); + } + + try + { + TracingAdapter.Information(Resources.UPNAuthenticationTrace, + context.Account.Id, context.Environment.Name, tenant); + + // TODO: When we will refactor the code, need to add tracing + /*TracingAdapter.Information(Resources.UPNAuthenticationTokenTrace, + token.LoginType, token.TenantId, token.UserId);*/ + + var env = new ActiveDirectoryServiceSettings + { + AuthenticationEndpoint = context.Environment.GetEndpointAsUri(AzureEnvironment.Endpoint.ActiveDirectory), + TokenAudience = context.Environment.GetEndpointAsUri(context.Environment.GetTokenAudience(targetEndpoint)), + ValidateAuthority = !context.Environment.OnPremise + }; + + var tokenCache = AzureSession.TokenCache; + + if (context.TokenCache != null && context.TokenCache.Length > 0) + { + tokenCache = new TokenCache(context.TokenCache); + } + + ServiceClientCredentials result = null; + + if (context.Account.Type == AzureAccount.AccountType.User) + { + result = Rest.Azure.Authentication.UserTokenProvider.CreateCredentialsFromCache( + AdalConfiguration.PowerShellClientId, + tenant, + context.Account.Id, + env, + tokenCache).ConfigureAwait(false).GetAwaiter().GetResult(); + } + else if (context.Account.Type == AzureAccount.AccountType.ServicePrincipal) + { + if (context.Account.IsPropertySet(AzureAccount.Property.CertificateThumbprint)) + { + result = ApplicationTokenProvider.LoginSilentAsync( + tenant, + context.Account.Id, + new CertificateApplicationCredentialProvider( + context.Account.GetProperty(AzureAccount.Property.CertificateThumbprint)), + env, + tokenCache).ConfigureAwait(false).GetAwaiter().GetResult(); + } + else + { + result = ApplicationTokenProvider.LoginSilentAsync( + tenant, + context.Account.Id, + new KeyStoreApplicationCredentialProvider(tenant), + env, + tokenCache).ConfigureAwait(false).GetAwaiter().GetResult(); + } + } + else + { + throw new NotSupportedException(context.Account.Type.ToString()); + } + + if (context.TokenCache != null && context.TokenCache.Length > 0) + { + context.TokenCache = tokenCache.Serialize(); + } + + return result; + } + catch (Exception ex) + { + TracingAdapter.Information(Resources.AdalAuthException, ex.Message); + throw new ArgumentException(Resources.InvalidArmContext, ex); + } + } + + private AdalConfiguration GetAdalConfiguration(AzureEnvironment environment, string tenantId, + AzureEnvironment.Endpoint resourceId, TokenCache tokenCache) + { + if (environment == null) + { + throw new ArgumentNullException("environment"); + } + var adEndpoint = environment.Endpoints[AzureEnvironment.Endpoint.ActiveDirectory]; + + return new AdalConfiguration + { + AdEndpoint = adEndpoint, + ResourceClientUri = environment.Endpoints[resourceId], + AdDomain = tenantId, + ValidateAuthority = !environment.OnPremise, + TokenCache = tokenCache + }; + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Factories/ClientFactory.cs b/src/Common/Commands.Common.Authentication/Factories/ClientFactory.cs new file mode 100644 index 000000000000..7ac12cce7418 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Factories/ClientFactory.cs @@ -0,0 +1,312 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; + +namespace Microsoft.Azure.Commands.Common.Authentication.Factories +{ + public class ClientFactory : IClientFactory + { + private static readonly char[] uriPathSeparator = { '/' }; + + private Dictionary _actions; + private OrderedDictionary _handlers; + + public ClientFactory() + { + _actions = new Dictionary(); + UserAgents = new HashSet(); + _handlers = new OrderedDictionary(); + } + + public virtual TClient CreateArmClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : Microsoft.Rest.ServiceClient + { + if (context == null) + { + throw new ApplicationException(Resources.NoSubscriptionInContext); + } + + var creds = AzureSession.AuthenticationFactory.GetServiceClientCredentials(context); + var newHandlers = GetCustomHandlers(); + TClient client = (newHandlers == null || newHandlers.Length == 0) + ? CreateCustomArmClient(context.Environment.GetEndpointAsUri(endpoint), creds) + : CreateCustomArmClient(context.Environment.GetEndpointAsUri(endpoint), creds, GetCustomHandlers()); + + var subscriptionId = typeof(TClient).GetProperty("SubscriptionId"); + if (subscriptionId != null && context.Subscription != null) + { + subscriptionId.SetValue(client, context.Subscription.Id.ToString()); + } + + return client; + } + + public virtual TClient CreateCustomArmClient(params object[] parameters) where TClient : Microsoft.Rest.ServiceClient + { + List types = new List(); + foreach (object obj in parameters) + { + types.Add(obj.GetType()); + } + + var constructor = typeof(TClient).GetConstructor(types.ToArray()); + + if (constructor == null) + { + throw new InvalidOperationException(string.Format(Resources.InvalidManagementClientType, typeof(TClient).Name)); + } + + TClient client = (TClient)constructor.Invoke(parameters); + + foreach (ProductInfoHeaderValue userAgent in UserAgents) + { + client.UserAgent.Add(userAgent); + } + + return client; + } + + public virtual TClient CreateClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient + { + if (context == null) + { + var exceptionMessage = endpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.InvalidDefaultSubscription + : Resources.NoSubscriptionInContext; + throw new ApplicationException(exceptionMessage); + } + + SubscriptionCloudCredentials creds = AzureSession.AuthenticationFactory.GetSubscriptionCloudCredentials(context, endpoint); + TClient client = CreateCustomClient(creds, context.Environment.GetEndpointAsUri(endpoint)); + foreach(DelegatingHandler handler in GetCustomHandlers()) + { + client.AddHandlerToPipeline(handler); + } + + return client; + } + + public virtual TClient CreateClient(AzureSMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient + { + TClient client = CreateClient(profile.Context, endpoint); + + foreach (IClientAction action in _actions.Values) + { + action.Apply(client, profile, endpoint); + } + + return client; + } + + /// + /// + /// + /// + /// + /// + public virtual TClient CreateClient(AzureSMProfile profile, AzureSubscription subscription, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient + { + if (subscription == null) + { + throw new ApplicationException(Resources.InvalidDefaultSubscription); + } + + if (!profile.Accounts.ContainsKey(subscription.Account)) + { + throw new ArgumentException(string.Format("Account with name '{0}' does not exist.", subscription.Account), "accountName"); + } + + if (!profile.Environments.ContainsKey(subscription.Environment)) + { + throw new ArgumentException(string.Format(Resources.EnvironmentNotFound, subscription.Environment)); + } + + AzureContext context = new AzureContext(subscription, + profile.Accounts[subscription.Account], + profile.Environments[subscription.Environment]); + + TClient client = CreateClient(context, endpoint); + + foreach (IClientAction action in _actions.Values) + { + action.Apply(client, profile, endpoint); + } + + return client; + } + + public virtual TClient CreateCustomClient(params object[] parameters) where TClient : ServiceClient + { + List types = new List(); + foreach (object obj in parameters) + { + types.Add(obj.GetType()); + } + + var constructor = typeof(TClient).GetConstructor(types.ToArray()); + + if (constructor == null) + { + throw new InvalidOperationException(string.Format(Resources.InvalidManagementClientType, typeof(TClient).Name)); + } + + TClient client = (TClient)constructor.Invoke(parameters); + + foreach (ProductInfoHeaderValue userAgent in UserAgents) + { + client.UserAgent.Add(userAgent); + } + + return client; + } + + public virtual HttpClient CreateHttpClient(string endpoint, ICredentials credentials) + { + return CreateHttpClient(endpoint, CreateHttpClientHandler(endpoint, credentials)); + } + + public virtual HttpClient CreateHttpClient(string endpoint, HttpMessageHandler effectiveHandler) + { + if (endpoint == null) + { + throw new ArgumentNullException("endpoint"); + } + + Uri serviceAddr = new Uri(endpoint); + HttpClient client = new HttpClient(effectiveHandler) + { + BaseAddress = serviceAddr, + MaxResponseContentBufferSize = 30 * 1024 * 1024 + }; + + client.DefaultRequestHeaders.Accept.Clear(); + + return client; + } + + public static HttpClientHandler CreateHttpClientHandler(string endpoint, ICredentials credentials) + { + if (endpoint == null) + { + throw new ArgumentNullException("endpoint"); + } + + // Set up our own HttpClientHandler and configure it + HttpClientHandler clientHandler = new HttpClientHandler(); + + if (credentials != null) + { + // Set up credentials cache which will handle basic authentication + CredentialCache credentialCache = new CredentialCache(); + + // Get base address without terminating slash + string credentialAddress = new Uri(endpoint).GetLeftPart(UriPartial.Authority).TrimEnd(uriPathSeparator); + + // Add credentials to cache and associate with handler + NetworkCredential networkCredentials = credentials.GetCredential(new Uri(credentialAddress), "Basic"); + credentialCache.Add(new Uri(credentialAddress), "Basic", networkCredentials); + clientHandler.Credentials = credentialCache; + clientHandler.PreAuthenticate = true; + } + + // Our handler is ready + return clientHandler; + } + + public void AddAction(IClientAction action) + { + if (action != null) + { + action.ClientFactory = this; + _actions[action.GetType()] = action; + } + } + + public void RemoveAction(Type actionType) + { + if (_actions.ContainsKey(actionType)) + { + _actions.Remove(actionType); + } + } + + public void AddHandler(T handler) where T: DelegatingHandler, ICloneable + { + if (handler != null) + { + _handlers[handler.GetType()] = handler; + } + } + + public void RemoveHandler(Type handlerType) + { + if (_handlers.Contains(handlerType)) + { + _handlers.Remove(handlerType); + } + } + + /// + /// Adds user agent to UserAgents collection. + /// + /// Product name. + /// Product version. + public void AddUserAgent(string productName, string productVersion) + { + UserAgents.Add(new ProductInfoHeaderValue(productName, productVersion)); + } + + /// + /// Adds user agent to UserAgents collection with empty version. + /// + /// Product name. + public void AddUserAgent(string productName) + { + AddUserAgent(productName, ""); + } + + public HashSet UserAgents { get; set; } + + private DelegatingHandler[] GetCustomHandlers() + { + List newHandlers = new List(); + var enumerator = _handlers.GetEnumerator(); + while (enumerator.MoveNext()) + { + var handler = enumerator.Value; + ICloneable cloneableHandler = handler as ICloneable; + if (cloneableHandler != null) + { + var newHandler = cloneableHandler.Clone(); + DelegatingHandler convertedHandler = newHandler as DelegatingHandler; + if (convertedHandler != null) + { + newHandlers.Add(convertedHandler); + } + } + } + + return newHandlers.ToArray(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Interfaces/IAuthenticationFactory.cs b/src/Common/Commands.Common.Authentication/Interfaces/IAuthenticationFactory.cs new file mode 100644 index 000000000000..62b4cfdffad1 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Interfaces/IAuthenticationFactory.cs @@ -0,0 +1,70 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Rest; +using System.Security; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public interface IAuthenticationFactory + { + /// + /// Returns IAccessToken if authentication succeeds or throws an exception if authentication fails. + /// + /// The azure account object + /// The azure environment object + /// The AD tenant in most cases should be 'common' + /// The AD account password + /// The prompt behavior + /// Token Cache + /// Optional, the AD resource id + /// + IAccessToken Authenticate( + AzureAccount account, + AzureEnvironment environment, + string tenant, + SecureString password, + ShowDialog promptBehavior, + TokenCache tokenCache, + AzureEnvironment.Endpoint resourceId = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId); + + /// + /// Returns IAccessToken if authentication succeeds or throws an exception if authentication fails. + /// + /// The azure account object + /// The azure environment object + /// The AD tenant in most cases should be 'common' + /// The AD account password + /// The prompt behavior + /// Optional, the AD resource id + /// + IAccessToken Authenticate( + AzureAccount account, + AzureEnvironment environment, + string tenant, + SecureString password, + ShowDialog promptBehavior, + AzureEnvironment.Endpoint resourceId = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId); + + SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context); + SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context, AzureEnvironment.Endpoint targetEndpoint); + + ServiceClientCredentials GetServiceClientCredentials(AzureContext context); + + ServiceClientCredentials GetServiceClientCredentials(AzureContext context, + AzureEnvironment.Endpoint targetEndpoint); + } +} diff --git a/src/Common/Commands.Common.Authentication/Interfaces/IClientFactory.cs b/src/Common/Commands.Common.Authentication/Interfaces/IClientFactory.cs new file mode 100644 index 000000000000..eda7b9073431 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Interfaces/IClientFactory.cs @@ -0,0 +1,66 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public interface IClientFactory + { + TClient CreateArmClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : Microsoft.Rest.ServiceClient; + + TClient CreateCustomArmClient(params object[] parameters) where TClient : Microsoft.Rest.ServiceClient; + + TClient CreateClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient; + + TClient CreateClient(AzureSMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient; + + TClient CreateClient(AzureSMProfile profile, AzureSubscription subscription, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient; + + TClient CreateCustomClient(params object[] parameters) where TClient : ServiceClient; + + HttpClient CreateHttpClient(string endpoint, ICredentials credentials); + + HttpClient CreateHttpClient(string endpoint, HttpMessageHandler effectiveHandler); + + void AddAction(IClientAction action); + + void RemoveAction(Type actionType); + + void AddHandler(T handler) where T: DelegatingHandler, ICloneable; + + void RemoveHandler(Type handlerType); + + /// + /// Adds user agent to UserAgents collection with empty version. + /// + /// Product name. + void AddUserAgent(string productName); + + /// + /// Adds user agent to UserAgents collection. + /// + /// Product name. + /// Product version. + void AddUserAgent(string productName, string productVersion); + + HashSet UserAgents { get; set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Interfaces/IDataStore.cs b/src/Common/Commands.Common.Authentication/Interfaces/IDataStore.cs new file mode 100644 index 000000000000..22121f1fd861 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Interfaces/IDataStore.cs @@ -0,0 +1,67 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.IO; +using System.Security.Cryptography.X509Certificates; +using System.Text; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public interface IDataStore + { + void WriteFile(string path, string contents); + + void WriteFile(string path, string content, Encoding encoding); + + void WriteFile(string path, byte[] contents); + + string ReadFileAsText(string path); + + Stream ReadFileAsStream(string path); + + byte[] ReadFileAsBytes(string path); + + void RenameFile(string oldPath, string newPath); + + void CopyFile(string oldPath, string newPath); + + bool FileExists(string path); + + void DeleteFile(string path); + + void DeleteDirectory(string dir); + + void EmptyDirectory(string dirPath); + + bool DirectoryExists(string path); + + void CreateDirectory(string path); + + string[] GetDirectories(string sourceDirName); + + string[] GetDirectories(string startDirectory, string filePattern, SearchOption options); + + string[] GetFiles(string sourceDirName); + + string[] GetFiles(string startDirectory, string filePattern, SearchOption options); + + FileAttributes GetFileAttributes(string path); + + X509Certificate2 GetCertificate(string thumbprint); + + void AddCertificate(X509Certificate2 cert); + + void RemoveCertificate(string thumbprint); + } +} diff --git a/src/Common/Commands.Common.Authentication/Interfaces/IProfileSerializer.cs b/src/Common/Commands.Common.Authentication/Interfaces/IProfileSerializer.cs new file mode 100644 index 000000000000..a847da23d859 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Interfaces/IProfileSerializer.cs @@ -0,0 +1,28 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Models; +using System.Collections.Generic; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public interface IProfileSerializer + { + string Serialize(AzureSMProfile profile); + + bool Deserialize(string contents, AzureSMProfile profile); + + IList DeserializeErrors { get; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureAccount.Methods.cs b/src/Common/Commands.Common.Authentication/Models/AzureAccount.Methods.cs new file mode 100644 index 000000000000..4923ee75562c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureAccount.Methods.cs @@ -0,0 +1,145 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Utilities; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + public partial class AzureAccount + { + public AzureAccount() + { + Properties = new Dictionary(); + } + + public string GetProperty(Property property) + { + return Properties.GetProperty(property); + } + + public string[] GetPropertyAsArray(Property property) + { + return Properties.GetPropertyAsArray(property); + } + + public void SetProperty(Property property, params string[] values) + { + Properties.SetProperty(property, values); + } + + public void SetOrAppendProperty(Property property, params string[] values) + { + Properties.SetOrAppendProperty(property, values); + } + + public bool IsPropertySet(Property property) + { + return Properties.IsPropertySet(property); + } + + public List GetSubscriptions(AzureSMProfile profile) + { + string subscriptions = string.Empty; + List subscriptionsList = new List(); + if (Properties.ContainsKey(Property.Subscriptions)) + { + subscriptions = Properties[Property.Subscriptions]; + } + + foreach (var subscription in subscriptions.Split(new [] {','}, StringSplitOptions.RemoveEmptyEntries)) + { + try + { + Guid subscriptionId = new Guid(subscription); + Debug.Assert(profile.Subscriptions.ContainsKey(subscriptionId)); + subscriptionsList.Add(profile.Subscriptions[subscriptionId]); + } + catch + { + // Skip + } + } + + return subscriptionsList; + } + + public bool HasSubscription(Guid subscriptionId) + { + bool exists = false; + string subscriptions = GetProperty(Property.Subscriptions); + + if (!string.IsNullOrEmpty(subscriptions)) + { + exists = subscriptions.Contains(subscriptionId.ToString()); + } + + return exists; + } + + public void SetSubscriptions(List subscriptions) + { + if (subscriptions == null || subscriptions.Count == 0) + { + if (Properties.ContainsKey(Property.Subscriptions)) + { + Properties.Remove(Property.Subscriptions); + } + } + else + { + string value = string.Join(",", subscriptions.Select(s => s.Id.ToString())); + Properties[Property.Subscriptions] = value; + } + } + + public void RemoveSubscription(Guid id) + { + if (HasSubscription(id)) + { + var remainingSubscriptions = GetPropertyAsArray(Property.Subscriptions).Where(s => s != id.ToString()).ToArray(); + + if (remainingSubscriptions.Any()) + { + Properties[Property.Subscriptions] = string.Join(",", remainingSubscriptions); + } + else + { + Properties.Remove(Property.Subscriptions); + } + } + } + + public override bool Equals(object obj) + { + var anotherAccount = obj as AzureAccount; + if (anotherAccount == null) + { + return false; + } + else + { + return string.Equals(anotherAccount.Id, Id, StringComparison.InvariantCultureIgnoreCase); + } + } + + public override int GetHashCode() + { + return Id.GetHashCode(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureAccount.cs b/src/Common/Commands.Common.Authentication/Models/AzureAccount.cs new file mode 100644 index 000000000000..334a547150f1 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureAccount.cs @@ -0,0 +1,60 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + [Serializable] + public partial class AzureAccount + { + public string Id { get; set; } + + public AccountType Type { get; set; } + + public Dictionary Properties { get; set; } + + public enum AccountType + { + Certificate, + User, + ServicePrincipal, + AccessToken + } + + public enum Property + { + /// + /// Comma separated list of subscription ids on this account. + /// + Subscriptions, + + /// + /// Comma separated list of tenants on this account. + /// + Tenants, + + /// + /// Access token. + /// + AccessToken, + + /// + /// Thumbprint for associated certificate + /// + CertificateThumbprint + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureContext.cs b/src/Common/Commands.Common.Authentication/Models/AzureContext.cs new file mode 100644 index 000000000000..c5c4f3c20ae8 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureContext.cs @@ -0,0 +1,90 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Newtonsoft.Json; +using System; +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + /// + /// Represents current Azure session context. + /// + [Serializable] + public class AzureContext + { + /// + /// Creates new instance of AzureContext. + /// + /// The azure subscription object + /// The azure account object + /// The azure environment object + public AzureContext(AzureSubscription subscription, AzureAccount account, AzureEnvironment environment) + : this(subscription, account, environment, null) + { + + } + + /// + /// Creates new instance of AzureContext. + /// + /// The azure account object + /// The azure environment object + /// The azure tenant object + public AzureContext(AzureAccount account, AzureEnvironment environment, AzureTenant tenant) + : this(null, account, environment, tenant) + { + + } + + /// + /// Creates new instance of AzureContext. + /// + /// The azure subscription object + /// The azure account object + /// The azure environment object + /// The azure tenant object + [JsonConstructor] + public AzureContext(AzureSubscription subscription, AzureAccount account, AzureEnvironment environment, AzureTenant tenant) + { + Subscription = subscription; + Account = account; + Environment = environment; + Tenant = tenant; + } + + /// + /// Gets the azure account. + /// + public AzureAccount Account { get; private set; } + + /// + /// Gets the azure subscription. + /// + public AzureSubscription Subscription { get; private set; } + + /// + /// Gets the azure environment. + /// + public AzureEnvironment Environment { get; private set; } + + /// + /// Gets the azure tenant. + /// + public AzureTenant Tenant { get; private set; } + + /// + /// Gets or sets the token cache contents. + /// + public byte[] TokenCache { get; set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureEnvironment.Methods.cs b/src/Common/Commands.Common.Authentication/Models/AzureEnvironment.Methods.cs new file mode 100644 index 000000000000..e03beb5dd6e0 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureEnvironment.Methods.cs @@ -0,0 +1,422 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using Microsoft.Azure.Commands.Common.Authentication.Utilities; +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + public partial class AzureEnvironment + { + /// + /// Predefined Microsoft Azure environments + /// + public static Dictionary PublicEnvironments + { + get { return environments; } + } + + private const string storageFormatTemplate = "{{0}}://{{1}}.{0}.{1}/"; + + private string EndpointFormatFor(string service) + { + string suffix = GetEndpointSuffix(AzureEnvironment.Endpoint.StorageEndpointSuffix); + + if (!string.IsNullOrEmpty(suffix)) + { + suffix = string.Format(storageFormatTemplate, service, suffix); + } + + return suffix; + } + + /// + /// The storage service blob endpoint format. + /// + private string StorageBlobEndpointFormat() + { + return EndpointFormatFor("blob"); + } + + /// + /// The storage service queue endpoint format. + /// + private string StorageQueueEndpointFormat() + { + return EndpointFormatFor("queue"); + } + + /// + /// The storage service table endpoint format. + /// + private string StorageTableEndpointFormat() + { + return EndpointFormatFor("table"); + } + + /// + /// The storage service file endpoint format. + /// + private string StorageFileEndpointFormat() + { + return EndpointFormatFor("file"); + } + + private static readonly Dictionary environments = + new Dictionary(StringComparer.InvariantCultureIgnoreCase) + { + { + EnvironmentName.AzureCloud, + new AzureEnvironment + { + Name = EnvironmentName.AzureCloud, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.PublishSettingsFileUrl, AzureEnvironmentConstants.AzurePublishSettingsFileUrl }, + { AzureEnvironment.Endpoint.ServiceManagement, AzureEnvironmentConstants.AzureServiceEndpoint }, + { AzureEnvironment.Endpoint.ResourceManager, AzureEnvironmentConstants.AzureResourceManagerEndpoint }, + { AzureEnvironment.Endpoint.ManagementPortalUrl, AzureEnvironmentConstants.AzureManagementPortalUrl }, + { AzureEnvironment.Endpoint.ActiveDirectory, AzureEnvironmentConstants.AzureActiveDirectoryEndpoint }, + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, AzureEnvironmentConstants.AzureServiceEndpoint }, + { AzureEnvironment.Endpoint.StorageEndpointSuffix, AzureEnvironmentConstants.AzureStorageEndpointSuffix }, + { AzureEnvironment.Endpoint.Gallery, AzureEnvironmentConstants.GalleryEndpoint }, + { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, AzureEnvironmentConstants.AzureSqlDatabaseDnsSuffix }, + { AzureEnvironment.Endpoint.Graph, AzureEnvironmentConstants.AzureGraphEndpoint }, + { AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, AzureEnvironmentConstants.AzureTrafficManagerDnsSuffix }, + { AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, AzureEnvironmentConstants.AzureKeyVaultDnsSuffix}, + { AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, AzureEnvironmentConstants.AzureKeyVaultServiceEndpointResourceId}, + { AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, AzureEnvironmentConstants.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix}, + { AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, AzureEnvironmentConstants.AzureDataLakeStoreFileSystemEndpointSuffix}, + { AzureEnvironment.Endpoint.GraphEndpointResourceId, AzureEnvironmentConstants.AzureGraphEndpoint} + } + } + }, + { + EnvironmentName.AzureChinaCloud, + new AzureEnvironment + { + Name = EnvironmentName.AzureChinaCloud, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.PublishSettingsFileUrl, AzureEnvironmentConstants.ChinaPublishSettingsFileUrl }, + { AzureEnvironment.Endpoint.ServiceManagement, AzureEnvironmentConstants.ChinaServiceEndpoint }, + { AzureEnvironment.Endpoint.ResourceManager, AzureEnvironmentConstants.ChinaResourceManagerEndpoint }, + { AzureEnvironment.Endpoint.ManagementPortalUrl, AzureEnvironmentConstants.ChinaManagementPortalUrl }, + { AzureEnvironment.Endpoint.ActiveDirectory, AzureEnvironmentConstants.ChinaActiveDirectoryEndpoint }, + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, AzureEnvironmentConstants.ChinaServiceEndpoint }, + { AzureEnvironment.Endpoint.StorageEndpointSuffix, AzureEnvironmentConstants.ChinaStorageEndpointSuffix }, + { AzureEnvironment.Endpoint.Gallery, AzureEnvironmentConstants.ChinaGalleryEndpoint }, + { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, AzureEnvironmentConstants.ChinaSqlDatabaseDnsSuffix }, + { AzureEnvironment.Endpoint.Graph, AzureEnvironmentConstants.ChinaGraphEndpoint }, + { AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, AzureEnvironmentConstants.ChinaTrafficManagerDnsSuffix }, + { AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, AzureEnvironmentConstants.ChinaKeyVaultDnsSuffix }, + { AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, AzureEnvironmentConstants.ChinaKeyVaultServiceEndpointResourceId }, + { AzureEnvironment.Endpoint.GraphEndpointResourceId, AzureEnvironmentConstants.ChinaGraphEndpoint} + // TODO: DataLakeAnalytics and ADL do not have a China endpoint yet. Once they do, add them here. + } + } + }, + { + EnvironmentName.AzureUSGovernment, + new AzureEnvironment + { + Name = EnvironmentName.AzureUSGovernment, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.PublishSettingsFileUrl, AzureEnvironmentConstants.USGovernmentPublishSettingsFileUrl }, + { AzureEnvironment.Endpoint.ServiceManagement, AzureEnvironmentConstants.USGovernmentServiceEndpoint }, + { AzureEnvironment.Endpoint.ResourceManager, AzureEnvironmentConstants.USGovernmentResourceManagerEndpoint }, + { AzureEnvironment.Endpoint.ManagementPortalUrl, AzureEnvironmentConstants.USGovernmentManagementPortalUrl }, + { AzureEnvironment.Endpoint.ActiveDirectory, AzureEnvironmentConstants.USGovernmentActiveDirectoryEndpoint }, + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, AzureEnvironmentConstants.USGovernmentServiceEndpoint }, + { AzureEnvironment.Endpoint.StorageEndpointSuffix, AzureEnvironmentConstants.USGovernmentStorageEndpointSuffix }, + { AzureEnvironment.Endpoint.Gallery, AzureEnvironmentConstants.USGovernmentGalleryEndpoint }, + { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, AzureEnvironmentConstants.USGovernmentSqlDatabaseDnsSuffix }, + { AzureEnvironment.Endpoint.Graph, AzureEnvironmentConstants.USGovernmentGraphEndpoint }, + { AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, null }, + { AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, AzureEnvironmentConstants.USGovernmentKeyVaultDnsSuffix}, + { AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, AzureEnvironmentConstants.USGovernmentKeyVaultServiceEndpointResourceId}, + { AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, null}, + { AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, null}, + {AzureEnvironment.Endpoint.GraphEndpointResourceId, AzureEnvironmentConstants.USGovernmentGraphEndpoint} + } + } + } + }; + + public Uri GetEndpointAsUri(AzureEnvironment.Endpoint endpoint) + { + if (Endpoints.ContainsKey(endpoint)) + { + return new Uri(Endpoints[endpoint]); + } + + return null; + } + + public string GetEndpoint(AzureEnvironment.Endpoint endpoint) + { + if (Endpoints.ContainsKey(endpoint)) + { + return Endpoints[endpoint]; + } + + return null; + } + + public AzureEnvironment.Endpoint GetTokenAudience(AzureEnvironment.Endpoint targetEndpoint) + { + return targetEndpoint == AzureEnvironment.Endpoint.Graph + ? AzureEnvironment.Endpoint.GraphEndpointResourceId + : AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId; + } + + + + public bool IsEndpointSet(AzureEnvironment.Endpoint endpoint) + { + return Endpoints.IsPropertySet(endpoint); + } + + public bool IsEndpointSetToValue(AzureEnvironment.Endpoint endpoint, string url) + { + if (url == null && !Endpoints.IsPropertySet(endpoint)) + { + return true; + } + if (url != null && Endpoints.IsPropertySet(endpoint)) + { + return GetEndpoint(endpoint) + .Trim(new[] { '/' }) + .Equals(url.Trim(new[] { '/' }), StringComparison.InvariantCultureIgnoreCase); + } + return false; + } + + public string GetEndpointSuffix(AzureEnvironment.Endpoint endpointSuffix) + { + if (Endpoints.ContainsKey(endpointSuffix)) + { + return Endpoints[endpointSuffix]; + } + + return null; + } + + /// + /// Gets the endpoint for storage blob. + /// + /// The account name + /// Use Https when creating the URI. Defaults to true. + /// The fully qualified uri to the blob service + public Uri GetStorageBlobEndpoint(string accountName, bool useHttps = true) + { + return new Uri(string.Format(StorageBlobEndpointFormat(), useHttps ? "https" : "http", accountName)); + } + + /// + /// Gets the endpoint for storage queue. + /// + /// The account name + /// Use Https when creating the URI. Defaults to true. + /// The fully qualified uri to the queue service + public Uri GetStorageQueueEndpoint(string accountName, bool useHttps = true) + { + return new Uri(string.Format(StorageQueueEndpointFormat(), useHttps ? "https" : "http", accountName)); + } + + /// + /// Gets the endpoint for storage table. + /// + /// The account name + /// Use Https when creating the URI. Defaults to true. + /// The fully qualified uri to the table service + public Uri GetStorageTableEndpoint(string accountName, bool useHttps = true) + { + return new Uri(string.Format(StorageTableEndpointFormat(), useHttps ? "https" : "http", accountName)); + } + + /// + /// Gets the endpoint for storage file. + /// + /// The account name + /// Use Https when creating the URI. Defaults to true. + /// The fully qualified uri to the file service + public Uri GetStorageFileEndpoint(string accountName, bool useHttps = true) + { + return new Uri(string.Format(StorageFileEndpointFormat(), useHttps ? "https" : "http", accountName)); + } + + /// + /// Gets the management portal URI with a particular realm suffix if supplied + /// + /// Realm for user's account + /// Url to management portal. + public string GetManagementPortalUrlWithRealm(string realm = null) + { + if (realm != null) + { + realm = string.Format(Resources.PublishSettingsFileRealmFormat, realm); + } + else + { + realm = string.Empty; + } + return GetEndpointAsUri(Endpoint.ManagementPortalUrl) + realm; + } + + /// + /// Get the publish settings file download url with a realm suffix if needed. + /// + /// Realm for user's account + /// Url to publish settings file + public string GetPublishSettingsFileUrlWithRealm(string realm = null) + { + if (realm != null) + { + realm = string.Format(Resources.PublishSettingsFileRealmFormat, realm); + } + else + { + realm = string.Empty; + } + return GetEndpointAsUri(Endpoint.PublishSettingsFileUrl) + realm; + } + + public enum Endpoint + { + ActiveDirectoryServiceEndpointResourceId, + + AdTenant, + + Gallery, + + ManagementPortalUrl, + + ServiceManagement, + + PublishSettingsFileUrl, + + ResourceManager, + + SqlDatabaseDnsSuffix, + + StorageEndpointSuffix, + + ActiveDirectory, + + Graph, + + TrafficManagerDnsSuffix, + + AzureKeyVaultDnsSuffix, + + AzureKeyVaultServiceEndpointResourceId, + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, + + AzureDataLakeStoreFileSystemEndpointSuffix, + + GraphEndpointResourceId + } + } + + public static class EnvironmentName + { + public const string AzureCloud = "AzureCloud"; + + public const string AzureChinaCloud = "AzureChinaCloud"; + + public const string AzureUSGovernment = "AzureUSGovernment"; + } + + public static class AzureEnvironmentConstants + { + public const string AzureServiceEndpoint = "https://management.core.windows.net/"; + + public const string ChinaServiceEndpoint = "https://management.core.chinacloudapi.cn/"; + + public const string USGovernmentServiceEndpoint = "https://management.core.usgovcloudapi.net/"; + + public const string AzureResourceManagerEndpoint = "https://management.azure.com/"; + + public const string ChinaResourceManagerEndpoint = "https://management.chinacloudapi.cn/"; + + public const string USGovernmentResourceManagerEndpoint = "https://management.usgovcloudapi.net/"; + + public const string GalleryEndpoint = "https://gallery.azure.com/"; + + public const string ChinaGalleryEndpoint = "https://gallery.chinacloudapi.cn/"; + + public const string USGovernmentGalleryEndpoint = "https://gallery.usgovcloudapi.net/"; + + public const string AzurePublishSettingsFileUrl = "http://go.microsoft.com/fwlink/?LinkID=301775"; + + public const string ChinaPublishSettingsFileUrl = "http://go.microsoft.com/fwlink/?LinkID=301776"; + + public const string USGovernmentPublishSettingsFileUrl = "https://manage.windowsazure.us/publishsettings/index"; + + public const string AzureManagementPortalUrl = "http://go.microsoft.com/fwlink/?LinkId=254433"; + + public const string ChinaManagementPortalUrl = "http://go.microsoft.com/fwlink/?LinkId=301902"; + + public const string USGovernmentManagementPortalUrl = "https://manage.windowsazure.us"; + + public const string AzureStorageEndpointSuffix = "core.windows.net"; + + public const string ChinaStorageEndpointSuffix = "core.chinacloudapi.cn"; + + public const string USGovernmentStorageEndpointSuffix = "core.usgovcloudapi.net"; + + public const string AzureSqlDatabaseDnsSuffix = ".database.windows.net"; + + public const string ChinaSqlDatabaseDnsSuffix = ".database.chinacloudapi.cn"; + + public const string USGovernmentSqlDatabaseDnsSuffix = ".database.usgovcloudapi.net"; + + public const string AzureActiveDirectoryEndpoint = "https://login.microsoftonline.com/"; + + public const string ChinaActiveDirectoryEndpoint = "https://login.chinacloudapi.cn/"; + + public const string USGovernmentActiveDirectoryEndpoint = "https://login.microsoftonline.com/"; + + public const string AzureGraphEndpoint = "https://graph.windows.net/"; + + public const string ChinaGraphEndpoint = "https://graph.chinacloudapi.cn/"; + + public const string USGovernmentGraphEndpoint = "https://graph.windows.net/"; + + public const string AzureTrafficManagerDnsSuffix = "trafficmanager.net"; + + public const string ChinaTrafficManagerDnsSuffix = "trafficmanager.cn"; + + public const string AzureKeyVaultDnsSuffix = "vault.azure.net"; + + public const string ChinaKeyVaultDnsSuffix = "vault.azure.cn"; + + public const string USGovernmentKeyVaultDnsSuffix = "vault.usgovcloudapi.net"; + + public const string AzureKeyVaultServiceEndpointResourceId = "https://vault.azure.net"; + + public const string ChinaKeyVaultServiceEndpointResourceId = "https://vault.azure.cn"; + + public const string USGovernmentKeyVaultServiceEndpointResourceId = "https://vault.usgovcloudapi.net"; + + public const string AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix = "azuredatalakeanalytics.net"; + + public const string AzureDataLakeStoreFileSystemEndpointSuffix = "azuredatalakestore.net"; + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureEnvironment.cs b/src/Common/Commands.Common.Authentication/Models/AzureEnvironment.cs new file mode 100644 index 000000000000..8d4da201f47b --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureEnvironment.cs @@ -0,0 +1,34 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + [Serializable] + public partial class AzureEnvironment + { + public AzureEnvironment() + { + Endpoints = new Dictionary(); + } + + public string Name { get; set; } + + public bool OnPremise { get; set; } + + public Dictionary Endpoints { get; set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureRMProfile.cs b/src/Common/Commands.Common.Authentication/Models/AzureRMProfile.cs new file mode 100644 index 000000000000..0fbfeb878d60 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureRMProfile.cs @@ -0,0 +1,147 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Diagnostics; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + /// + /// Represents Azure Resource Manager profile structure with default context, environments and token cache. + /// + [Serializable] + public sealed class AzureRMProfile : IAzureProfile + { + /// + /// Gets or sets Azure environments. + /// + public Dictionary Environments { get; set; } + + /// + /// Gets or sets the default azure context object. + /// + public AzureContext Context { get; set; } + + /// + /// Gets the path of the profile file. + /// + [JsonIgnore] + public string ProfilePath { get; private set; } + + private void Load(string path) + { + this.ProfilePath = path; + + if (!AzureSession.DataStore.DirectoryExists(AzureSession.ProfileDirectory)) + { + AzureSession.DataStore.CreateDirectory(AzureSession.ProfileDirectory); + } + + if (AzureSession.DataStore.FileExists(ProfilePath)) + { + string contents = AzureSession.DataStore.ReadFileAsText(ProfilePath); + AzureRMProfile profile = JsonConvert.DeserializeObject(contents); + Debug.Assert(profile != null); + this.Context = profile.Context; + this.Environments = profile.Environments; + } + } + + /// + /// Creates new instance of AzureRMProfile. + /// + public AzureRMProfile() + { + Environments = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + + // Adding predefined environments + foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) + { + Environments[env.Name] = env; + } + } + + /// + /// Initializes a new instance of AzureRMProfile and loads its content from specified path. + /// + /// The location of profile file on disk. + public AzureRMProfile(string path) : this() + { + Load(path); + } + + /// + /// Writes profile to the disk it was opened from disk. + /// + public void Save() + { + if (!string.IsNullOrEmpty(ProfilePath)) + { + Save(ProfilePath); + } + } + + /// + /// Writes profile to a specified path. + /// + /// File path on disk to save profile to + public void Save(string path) + { + if (string.IsNullOrEmpty(path)) + { + return; + } + + // Removing predefined environments + foreach (string env in AzureEnvironment.PublicEnvironments.Keys) + { + Environments.Remove(env); + } + + try + { + string contents = ToString(); + string diskContents = string.Empty; + if (AzureSession.DataStore.FileExists(path)) + { + diskContents = AzureSession.DataStore.ReadFileAsText(path); + } + + if (diskContents != contents) + { + AzureSession.DataStore.WriteFile(path, contents); + } + } + finally + { + // Adding back predefined environments + foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) + { + Environments[env.Name] = env; + } + } + } + + /// + /// Serializes the current profile and return its contents. + /// + /// The current string. + public override string ToString() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureSMProfile.cs b/src/Common/Commands.Common.Authentication/Models/AzureSMProfile.cs new file mode 100644 index 000000000000..6d356de3f673 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureSMProfile.cs @@ -0,0 +1,240 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + /// + /// Represents Azure profile structure with multiple environments, subscriptions, and accounts. + /// + [Serializable] + public sealed class AzureSMProfile : IAzureProfile + { + /// + /// Gets Azure Accounts + /// + public Dictionary Accounts { get; set; } + + /// + /// Gets Azure Subscriptions + /// + public Dictionary Subscriptions { get; set; } + + /// + /// Gets or sets current Azure Subscription + /// + public AzureSubscription DefaultSubscription + { + get + { + return Subscriptions.Values.FirstOrDefault( + s => s.Properties.ContainsKey(AzureSubscription.Property.Default)); + } + + set + { + if (value == null) + { + foreach (var subscription in Subscriptions.Values) + { + subscription.SetProperty(AzureSubscription.Property.Default, null); + } + } + else if (Subscriptions.ContainsKey(value.Id)) + { + foreach (var subscription in Subscriptions.Values) + { + subscription.SetProperty(AzureSubscription.Property.Default, null); + } + + Subscriptions[value.Id].Properties[AzureSubscription.Property.Default] = "True"; + value.Properties[AzureSubscription.Property.Default] = "True"; + } + } + } + + /// + /// Gets Azure Environments + /// + public Dictionary Environments { get; set; } + + /// + /// Gets the default azure context object. + /// + [JsonIgnore] + public AzureContext Context + { + get + { + var context = new AzureContext(null, null, null, null); + + if (DefaultSubscription != null) + { + AzureAccount account = null; + AzureEnvironment environment = AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud]; + if (DefaultSubscription.Account != null && + Accounts.ContainsKey(DefaultSubscription.Account)) + { + account = Accounts[DefaultSubscription.Account]; + } + else + { + TracingAdapter.Information(Resources.NoAccountInContext, DefaultSubscription.Account, DefaultSubscription.Id); + } + + if (DefaultSubscription.Environment != null && + Environments.ContainsKey(DefaultSubscription.Environment)) + { + environment = Environments[DefaultSubscription.Environment]; + } + else + { + TracingAdapter.Information(Resources.NoEnvironmentInContext, DefaultSubscription.Environment, DefaultSubscription.Id); + } + + context = new AzureContext(DefaultSubscription, account, environment); + } + + return context; + } + } + + /// + /// Gets errors from loading the profile. + /// + public List ProfileLoadErrors { get; private set; } + + /// + /// Location of the profile file. + /// + public string ProfilePath { get; private set; } + + /// + /// Initializes a new instance of AzureSMProfile + /// + public AzureSMProfile() + { + Environments = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + Subscriptions = new Dictionary(); + Accounts = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + + // Adding predefined environments + foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) + { + Environments[env.Name] = env; + } + } + + /// + /// Initializes a new instance of AzureSMProfile and loads its content from specified path. + /// Any errors generated in the process are stored in ProfileLoadErrors collection. + /// + /// Location of profile file on disk. + public AzureSMProfile(string path) : this() + { + ProfilePath = path; + ProfileLoadErrors = new List(); + + if (!AzureSession.DataStore.DirectoryExists(AzureSession.ProfileDirectory)) + { + AzureSession.DataStore.CreateDirectory(AzureSession.ProfileDirectory); + } + + if (AzureSession.DataStore.FileExists(ProfilePath)) + { + string contents = AzureSession.DataStore.ReadFileAsText(ProfilePath); + + IProfileSerializer serializer; + + if (CloudException.IsXml(contents)) + { + serializer = new XmlProfileSerializer(); + if (!serializer.Deserialize(contents, this)) + { + ProfileLoadErrors.AddRange(serializer.DeserializeErrors); + } + } + else if (CloudException.IsJson(contents)) + { + serializer = new JsonProfileSerializer(); + if (!serializer.Deserialize(contents, this)) + { + ProfileLoadErrors.AddRange(serializer.DeserializeErrors); + } + } + } + } + + /// + /// Writes profile to a ProfilePath + /// + public void Save() + { + Save(ProfilePath); + } + + /// + /// Writes profile to a specified path. + /// + /// File path on disk to save profile to + public void Save(string path) + { + if (string.IsNullOrEmpty(path)) + { + return; + } + + // Removing predefined environments + foreach (string env in AzureEnvironment.PublicEnvironments.Keys) + { + Environments.Remove(env); + } + + try + { + string contents = ToString(); + string diskContents = string.Empty; + if (AzureSession.DataStore.FileExists(path)) + { + diskContents = AzureSession.DataStore.ReadFileAsText(path); + } + + if (diskContents != contents) + { + AzureSession.DataStore.WriteFile(path, contents); + } + } + finally + { + // Adding back predefined environments + foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) + { + Environments[env.Name] = env; + } + } + } + + public override string ToString() + { + JsonProfileSerializer jsonSerializer = new JsonProfileSerializer(); + return jsonSerializer.Serialize(this); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureSubscription.Methods.cs b/src/Common/Commands.Common.Authentication/Models/AzureSubscription.Methods.cs new file mode 100644 index 000000000000..72e9df3c4386 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureSubscription.Methods.cs @@ -0,0 +1,70 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Utilities; +using System.Collections.Generic; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + public partial class AzureSubscription + { + public AzureSubscription() + { + Properties = new Dictionary(); + } + + public override int GetHashCode() + { + return Id.GetHashCode(); + } + + public string GetProperty(Property property) + { + return Properties.GetProperty(property); + } + + public string[] GetPropertyAsArray(Property property) + { + return Properties.GetPropertyAsArray(property); + } + + public void SetProperty(Property property, params string[] values) + { + Properties.SetProperty(property, values); + } + + public void SetOrAppendProperty(Property property, params string[] values) + { + Properties.SetOrAppendProperty(property, values); + } + + public bool IsPropertySet(Property property) + { + return Properties.IsPropertySet(property); + } + + public override bool Equals(object obj) + { + var anotherSubscription = obj as AzureSubscription; + if (anotherSubscription == null) + { + return false; + } + else + { + return anotherSubscription.Id == Id; + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureSubscription.cs b/src/Common/Commands.Common.Authentication/Models/AzureSubscription.cs new file mode 100644 index 000000000000..2ae95d2284f8 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureSubscription.cs @@ -0,0 +1,55 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + [Serializable] + public partial class AzureSubscription + { + public Guid Id { get; set; } + + public string Name { get; set; } + + public string Environment { get; set; } + + public string Account { get; set; } + + public string State { get; set; } + + public Dictionary Properties { get; set; } + + public enum Property + { + /// + /// Comma separated registered resource providers, i.e.: websites,compute,hdinsight + /// + RegisteredResourceProviders, + + /// + /// Associated tenants + /// + Tenants, + + /// + /// If this property existed on the subscription indicates that it's default one. + /// + Default, + + StorageAccount + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/AzureTenant.cs b/src/Common/Commands.Common.Authentication/Models/AzureTenant.cs new file mode 100644 index 000000000000..f02c0ac8777f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/AzureTenant.cs @@ -0,0 +1,35 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + /// + /// Represents an AD tenant. + /// + [Serializable] + public class AzureTenant + { + /// + /// Gets or sets the tenant id. + /// + public Guid Id { get; set; } + + /// + /// Gets or sets the tenant domain. + /// + public string Domain { get; set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/DiskDataStore.cs b/src/Common/Commands.Common.Authentication/Models/DiskDataStore.cs new file mode 100644 index 000000000000..cf1f15302307 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/DiskDataStore.cs @@ -0,0 +1,180 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using System; +using System.IO; +using System.Security.Cryptography.X509Certificates; +using System.Text; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + public class DiskDataStore : IDataStore + { + public void WriteFile(string path, string contents) + { + File.WriteAllText(path, contents); + } + + public void WriteFile(string path, string contents, Encoding encoding) + { + File.WriteAllText(path, contents, encoding); + } + + public void WriteFile(string path, byte[] contents) + { + File.WriteAllBytes(path, contents); + } + + public string ReadFileAsText(string path) + { + return File.ReadAllText(path); + } + + public byte[] ReadFileAsBytes(string path) + { + return File.ReadAllBytes(path); + } + + public Stream ReadFileAsStream(string path) + { + return File.Open(path, FileMode.Open, FileAccess.Read); + } + + public void RenameFile(string oldPath, string newPath) + { + File.Move(oldPath, newPath); + } + + public void CopyFile(string oldPath, string newPath) + { + File.Copy(oldPath, newPath, true); + } + + public bool FileExists(string path) + { + return File.Exists(path); + } + + public void DeleteFile(string path) + { + File.Delete(path); + } + + public void DeleteDirectory(string dir) + { + Directory.Delete(dir, true); + } + + public void EmptyDirectory(string dirPath) + { + foreach (var filePath in Directory.GetFiles(dirPath)) + { + File.Delete(filePath); + } + } + + public string[] GetFiles(string sourceDirName) + { + return Directory.GetFiles(sourceDirName); + } + + public string[] GetFiles(string startDirectory, string filePattern, SearchOption options) + { + return Directory.GetFiles(startDirectory, filePattern, options); + } + + public FileAttributes GetFileAttributes(string path) + { + return File.GetAttributes(path); + } + + public X509Certificate2 GetCertificate(string thumbprint) + { + if (thumbprint == null) + { + return null; + } + else + { + Validate.ValidateStringIsNullOrEmpty(thumbprint, "certificate thumbprint"); + X509Certificate2Collection certificates; + if (TryFindCertificatesInStore(thumbprint, StoreLocation.CurrentUser, out certificates) || + TryFindCertificatesInStore(thumbprint, StoreLocation.LocalMachine, out certificates)) + { + return certificates[0]; + } + else + { + throw new ArgumentException(string.Format(Resources.CertificateNotFoundInStore, thumbprint)); + } + } + } + + private static bool TryFindCertificatesInStore(string thumbprint, + StoreLocation location, out X509Certificate2Collection certificates) + { + X509Store store = new X509Store(StoreName.My, location); + store.Open(OpenFlags.ReadOnly); + certificates = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); + store.Close(); + + return certificates.Count > 0; + } + + public void AddCertificate(X509Certificate2 certificate) + { + Validate.ValidateNullArgument(certificate, Resources.InvalidCertificate); + X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); + store.Open(OpenFlags.ReadWrite); + store.Add(certificate); + store.Close(); + } + + public void RemoveCertificate(string thumbprint) + { + if (thumbprint != null) + { + var certificate = GetCertificate(thumbprint); + if (certificate != null) + { + X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); + store.Open(OpenFlags.ReadWrite); + store.Remove(certificate); + store.Close(); + } + } + } + + public bool DirectoryExists(string path) + { + return Directory.Exists(path); + } + + public void CreateDirectory(string path) + { + Directory.CreateDirectory(path); + } + + public string[] GetDirectories(string sourceDirName) + { + return Directory.GetDirectories(sourceDirName); + } + + public string[] GetDirectories(string startDirectory, string filePattern, SearchOption options) + { + return Directory.GetDirectories(startDirectory, filePattern, options); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/IAzureProfile.cs b/src/Common/Commands.Common.Authentication/Models/IAzureProfile.cs new file mode 100644 index 000000000000..bdb1784d8881 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/IAzureProfile.cs @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + /// + /// Interface for Azure supported profiles. + /// + public interface IAzureProfile + { + /// + /// Gets the default azure context object. + /// + AzureContext Context { get; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/IClientAction.cs b/src/Common/Commands.Common.Authentication/Models/IClientAction.cs new file mode 100644 index 000000000000..eea6e424d270 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/IClientAction.cs @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + public interface IClientAction + { + IClientFactory ClientFactory { get; set; } + + void Apply(TClient client, AzureSMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient; + + void ApplyArm(TClient client, AzureRMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : Microsoft.Rest.ServiceClient; + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/JsonProfileSerializer.cs b/src/Common/Commands.Common.Authentication/Models/JsonProfileSerializer.cs new file mode 100644 index 000000000000..3510ea1e5a54 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/JsonProfileSerializer.cs @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + public class JsonProfileSerializer : IProfileSerializer + { + public string Serialize(AzureSMProfile profile) + { + return JsonConvert.SerializeObject(new + { + Environments = profile.Environments.Values.ToList(), + Subscriptions = profile.Subscriptions.Values.ToList(), + Accounts = profile.Accounts.Values.ToList() + }, Formatting.Indented); + } + + public bool Deserialize(string contents, AzureSMProfile profile) + { + DeserializeErrors = new List(); + + try + { + var jsonProfile = JObject.Parse(contents); + + foreach (var env in jsonProfile["Environments"]) + { + try + { + profile.Environments[(string) env["Name"]] = + JsonConvert.DeserializeObject(env.ToString()); + } + catch (Exception ex) + { + DeserializeErrors.Add(ex.Message); + } + } + + foreach (var subscription in jsonProfile["Subscriptions"]) + { + try + { + profile.Subscriptions[new Guid((string) subscription["Id"])] = + JsonConvert.DeserializeObject(subscription.ToString()); + } + catch (Exception ex) + { + DeserializeErrors.Add(ex.Message); + } + } + + foreach (var account in jsonProfile["Accounts"]) + { + try + { + profile.Accounts[(string) account["Id"]] = + JsonConvert.DeserializeObject(account.ToString()); + } + catch (Exception ex) + { + DeserializeErrors.Add(ex.Message); + } + } + } + catch (Exception ex) + { + DeserializeErrors.Add(ex.Message); + } + return DeserializeErrors.Count == 0; + } + + public IList DeserializeErrors { get; private set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/MemoryDataStore.cs b/src/Common/Commands.Common.Authentication/Models/MemoryDataStore.cs new file mode 100644 index 000000000000..e9b1b6892a1e --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/MemoryDataStore.cs @@ -0,0 +1,317 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.RegularExpressions; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + public class MemoryDataStore : IDataStore + { + private Dictionary virtualStore = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + private Dictionary certStore = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + private const string FolderKey = "Folder"; + + public Dictionary VirtualStore + { + get { return virtualStore; } + set { virtualStore = value; } + } + + public void WriteFile(string path, string contents) + { + VirtualStore[path] = contents; + } + + public void WriteFile(string path, string contents, Encoding encoding) + { + WriteFile(path, contents); + } + + public void WriteFile(string path, byte[] contents) + { + VirtualStore[path] = Encoding.Default.GetString(contents); + } + + public string ReadFileAsText(string path) + { + if (VirtualStore.ContainsKey(path)) + { + return VirtualStore[path]; + } + else + { + throw new IOException("File not found: " + path); + } + } + + public Stream ReadFileAsStream(string path) + { + if (VirtualStore.ContainsKey(path)) + { + MemoryStream stream = new MemoryStream(); + StreamWriter writer = new StreamWriter(stream); + writer.Write(VirtualStore[path]); + writer.Flush(); + stream.Position = 0; + return stream; + } + else + { + throw new IOException("File not found: " + path); + } + } + + public byte[] ReadFileAsBytes(string path) + { + if (VirtualStore.ContainsKey(path)) + { + return Encoding.Default.GetBytes(VirtualStore[path]); + } + else + { + throw new IOException("File not found: " + path); + } + } + + public void RenameFile(string oldPath, string newPath) + { + if (VirtualStore.ContainsKey(oldPath)) + { + VirtualStore[newPath] = VirtualStore[oldPath]; + VirtualStore.Remove(oldPath); + } + else + { + throw new IOException("File not found: " + oldPath); + } + } + + public void CopyFile(string oldPath, string newPath) + { + if (VirtualStore.ContainsKey(oldPath)) + { + VirtualStore[newPath] = VirtualStore[oldPath]; + } + else + { + throw new IOException("File not found: " + oldPath); + } + } + + public bool FileExists(string path) + { + return VirtualStore.ContainsKey(path); + } + + public void DeleteFile(string path) + { + if (VirtualStore.ContainsKey(path)) + { + VirtualStore.Remove(path); + } + else + { + throw new IOException("File not found: " + path); + } + } + + public void DeleteDirectory(string dir) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(dir)) + { + VirtualStore.Remove(key); + } + } + } + + public void EmptyDirectory(string dirPath) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(dirPath)) + { + VirtualStore.Remove(key); + } + } + } + + public bool DirectoryExists(string path) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(path)) + { + return true; + } + } + return false; + } + + public void CreateDirectory(string path) + { + VirtualStore[path] = FolderKey; + } + + public string[] GetDirectories(string sourceDirName) + { + HashSet dirs = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(sourceDirName)) + { + var directoryName = Path.GetDirectoryName(key); + if (!dirs.Contains(directoryName)) + { + dirs.Add(directoryName); + } + } + } + return dirs.ToArray(); + } + + public string[] GetDirectories(string startDirectory, string filePattern, SearchOption options) + { + HashSet dirs = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(startDirectory) && Regex.IsMatch(key, WildcardToRegex(filePattern), RegexOptions.IgnoreCase)) + { + var directoryName = Path.GetDirectoryName(key); + if (!dirs.Contains(directoryName)) + { + dirs.Add(directoryName); + } + } + } + return dirs.ToArray(); + } + + public string[] GetFiles(string sourceDirName) + { + HashSet files = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(sourceDirName) && VirtualStore[key] != FolderKey) + { + if (!files.Contains(key)) + { + files.Add(key); + } + } + } + return files.ToArray(); + } + + public string[] GetFiles(string startDirectory, string filePattern, SearchOption options) + { + HashSet files = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(startDirectory) && VirtualStore[key] != FolderKey && Regex.IsMatch(key, WildcardToRegex(filePattern), RegexOptions.IgnoreCase)) + { + if (!files.Contains(key)) + { + files.Add(key); + } + } + } + return files.ToArray(); + } + + public FileAttributes GetFileAttributes(string path) + { + if (VirtualStore[path] == FolderKey) + { + return FileAttributes.Directory; + } + if (VirtualStore.ContainsKey(path)) + { + return FileAttributes.Normal; + } + else + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(path)) + { + return FileAttributes.Directory; + } + } + throw new IOException("File not found: " + path); + } + } + + public X509Certificate2 GetCertificate(string thumbprint) + { + if (thumbprint != null && certStore.ContainsKey(thumbprint)) + { + return certStore[thumbprint]; + } + else + { + return new X509Certificate2(); + } + } + + public void AddCertificate(X509Certificate2 cert) + { + if (cert != null && cert.Thumbprint != null) + { + certStore[cert.Thumbprint] = cert; + } + } + + public void RemoveCertificate(string thumbprint) + { + if (thumbprint != null && certStore.ContainsKey(thumbprint)) + { + certStore.Remove(thumbprint); + } + } + + /// + /// Converts unix asterisk based file pattern to regex + /// + /// Asterisk based pattern + /// Regeular expression of null is empty + private static string WildcardToRegex(string wildcard) + { + if (wildcard == null || wildcard == "") return wildcard; + + StringBuilder sb = new StringBuilder(); + + char[] chars = wildcard.ToCharArray(); + for (int i = 0; i < chars.Length; ++i) + { + if (chars[i] == '*') + sb.Append(".*"); + else if (chars[i] == '?') + sb.Append("."); + else if ("+()^$.{}|\\".IndexOf(chars[i]) != -1) + sb.Append('\\').Append(chars[i]); // prefix all metacharacters with backslash + else + sb.Append(chars[i]); + } + return sb.ToString().ToLowerInvariant(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Models/XmlProfileSerializer.cs b/src/Common/Commands.Common.Authentication/Models/XmlProfileSerializer.cs new file mode 100644 index 000000000000..c1eda20aefef --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Models/XmlProfileSerializer.cs @@ -0,0 +1,95 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; + +namespace Microsoft.Azure.Commands.Common.Authentication.Models +{ + public class XmlProfileSerializer : IProfileSerializer + { + public string Serialize(AzureSMProfile obj) + { + // We do not use the serialize for xml serializer anymore and rely solely on the JSON serializer. + throw new NotImplementedException(); + } + + public bool Deserialize(string contents, AzureSMProfile profile) + { + ProfileData data; + Debug.Assert(profile != null); + + DeserializeErrors = new List(); + + DataContractSerializer serializer = new DataContractSerializer(typeof(ProfileData)); + using (MemoryStream s = new MemoryStream(Encoding.UTF8.GetBytes(contents ?? ""))) + { + data = (ProfileData)serializer.ReadObject(s); + } + + if (data != null) + { + foreach (AzureEnvironmentData oldEnv in data.Environments) + { + profile.Environments[oldEnv.Name] = oldEnv.ToAzureEnvironment(); + } + + List envs = profile.Environments.Values.ToList(); + foreach (AzureSubscriptionData oldSubscription in data.Subscriptions) + { + try + { + var newSubscription = oldSubscription.ToAzureSubscription(envs); + if (newSubscription.Account == null) + { + continue; + } + + var newAccounts = oldSubscription.ToAzureAccounts(); + foreach (var account in newAccounts) + { + if (profile.Accounts.ContainsKey(account.Id)) + { + profile.Accounts[account.Id].SetOrAppendProperty(AzureAccount.Property.Tenants, + account.GetPropertyAsArray(AzureAccount.Property.Tenants)); + profile.Accounts[account.Id].SetOrAppendProperty(AzureAccount.Property.Subscriptions, + account.GetPropertyAsArray(AzureAccount.Property.Subscriptions)); + } + else + { + profile.Accounts[account.Id] = account; + } + } + + profile.Subscriptions[newSubscription.Id] = newSubscription; + } + catch (Exception ex) + { + // Skip subscription if failed to load + DeserializeErrors.Add(ex.Message); + } + } + } + + return DeserializeErrors.Count == 0; + } + + public IList DeserializeErrors { get; private set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/Properties/AssemblyInfo.cs b/src/Common/Commands.Common.Authentication/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..af2f483fb0a1 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Properties/AssemblyInfo.cs @@ -0,0 +1,50 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Commands.Common.Authentication")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Commands.Common.Authentication")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("51ee5716-6b2e-4488-8c7e-97e49e9101b8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Common/Commands.Common.Authentication/Properties/Resources.Designer.cs b/src/Common/Commands.Common.Authentication/Properties/Resources.Designer.cs new file mode 100644 index 000000000000..abe8955e9c48 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Properties/Resources.Designer.cs @@ -0,0 +1,612 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Microsoft.Azure.Commands.Common.Authentication.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.Azure.Commands.Common.Authentication.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Account needs to be specified. + /// + public static string AccountNeedsToBeSpecified { + get { + return ResourceManager.GetString("AccountNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No account was found for this subscription. Please execute Clear-AzureProfile and then execute Add-AzureAccount.. + /// + public static string AccountNotFound { + get { + return ResourceManager.GetString("AccountNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Authenticating using configuration values: Domain: '{0}', Endpoint: '{1}', ClientId: '{2}', ClientRedirect: '{3}', ResourceClientUri: '{4}', ValidateAuthrity: '{5}'. + /// + public static string AdalAuthConfigurationTrace { + get { + return ResourceManager.GetString("AdalAuthConfigurationTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Received exception {0}, while authenticating.. + /// + public static string AdalAuthException { + get { + return ResourceManager.GetString("AdalAuthException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multiple tokens were found for this user. Please clear your token cache using, Clear-AzureProfile and try this command again.. + /// + public static string AdalMultipleTokens { + get { + return ResourceManager.GetString("AdalMultipleTokens", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User Interaction is required to authenticate this user. Please authenticate using the log in dialog. In PowerShell, execute Login-AzureRMAccount for Azure Resource Manager cmdlets or Add-AzureAccount for service management cmdlets.. + /// + public static string AdalUserInteractionRequired { + get { + return ResourceManager.GetString("AdalUserInteractionRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No account found in the context. Please login using Login-AzureRMAccount.. + /// + public static string ArmAccountNotFound { + get { + return ResourceManager.GetString("ArmAccountNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User Interaction is required to authenticate this user. Please execute Login-AzureRMAccount without parameters and enter your credentials.. + /// + public static string ArmUserInteractionRequired { + get { + return ResourceManager.GetString("ArmUserInteractionRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Authenticating for account {0} with single tenant {1}. + /// + public static string AuthenticatingForSingleTenant { + get { + return ResourceManager.GetString("AuthenticatingForSingleTenant", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windows Azure Powershell. + /// + public static string AzureDirectoryName { + get { + return ResourceManager.GetString("AzureDirectoryName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No certificate was found in the certificate store with thumbprint {0}. + /// + public static string CertificateNotFoundInStore { + get { + return ResourceManager.GetString("CertificateNotFoundInStore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changing public environment is not supported.. + /// + public static string ChangingDefaultEnvironmentNotSupported { + get { + return ResourceManager.GetString("ChangingDefaultEnvironmentNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to -Credential parameter can only be used with Organization ID credentials. For more information, please refer to http://go.microsoft.com/fwlink/?linkid=331007&clcid=0x409 for more information about the difference between an organizational account and a Microsoft account.. + /// + public static string CredentialOrganizationIdMessage { + get { + return ResourceManager.GetString("CredentialOrganizationIdMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment name needs to be specified. + /// + public static string EnvironmentNameNeedsToBeSpecified { + get { + return ResourceManager.GetString("EnvironmentNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment needs to be specified. + /// + public static string EnvironmentNeedsToBeSpecified { + get { + return ResourceManager.GetString("EnvironmentNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The environment name '{0}' is not found.. + /// + public static string EnvironmentNotFound { + get { + return ResourceManager.GetString("EnvironmentNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your Microsoft Azure credential in the Windows PowerShell session has expired. Please log in again. In PowerShell, execute Login-AzureRMAccount for Azure Resource Manager cmdlets or Add-AzureAccount for service management cmdlets.. + /// + public static string ExpiredRefreshToken { + get { + return ResourceManager.GetString("ExpiredRefreshToken", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File path is not valid. + /// + public static string FilePathIsNotValid { + get { + return ResourceManager.GetString("FilePathIsNotValid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Illegal characters in path.. + /// + public static string IllegalPath { + get { + return ResourceManager.GetString("IllegalPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your Azure credentials have not been set up or have expired, please run Login-AzureRMAccount to set up your Azure credentials.. + /// + public static string InvalidArmContext { + get { + return ResourceManager.GetString("InvalidArmContext", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid certificate format. Publish settings may be corrupted. Use Get-AzurePublishSettingsFile to download updated settings. + /// + public static string InvalidCertificate { + get { + return ResourceManager.GetString("InvalidCertificate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Credential type invalid, only handles '{0}'. + /// + public static string InvalidCredentialType { + get { + return ResourceManager.GetString("InvalidCredentialType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription.. + /// + public static string InvalidDefaultSubscription { + get { + return ResourceManager.GetString("InvalidDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "{0}" is an invalid DNS name for {1}. + /// + public static string InvalidDnsName { + get { + return ResourceManager.GetString("InvalidDnsName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided file in {0} must be have {1} extension. + /// + public static string InvalidFileExtension { + get { + return ResourceManager.GetString("InvalidFileExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot create instance of management client type {0}. It does not have the expected constructor.. + /// + public static string InvalidManagementClientType { + get { + return ResourceManager.GetString("InvalidManagementClientType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} is invalid or empty. + /// + public static string InvalidOrEmptyArgumentMessage { + get { + return ResourceManager.GetString("InvalidOrEmptyArgumentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Must specify a non-null subscription name.. + /// + public static string InvalidSubscriptionName { + get { + return ResourceManager.GetString("InvalidSubscriptionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your Azure credentials have not been set up or have expired, please run Add-AzureAccount to set up your Azure credentials.. + /// + public static string InvalidSubscriptionState { + get { + return ResourceManager.GetString("InvalidSubscriptionState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: No matching account record for account {0} in subscription {1}. + /// + public static string NoAccountInContext { + get { + return ResourceManager.GetString("NoAccountInContext", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: No matching environment record for environment {0} in subscription {1}, using AzureCloud environment instead. + /// + public static string NoEnvironmentInContext { + get { + return ResourceManager.GetString("NoEnvironmentInContext", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please connect to internet before executing this cmdlet. + /// + public static string NoInternetConnection { + get { + return ResourceManager.GetString("NoInternetConnection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No subscription found in the context. Please ensure that the credentials you provided are authorized to access an Azure subscription, then run Login-AzureRMAccount to login.. + /// + public static string NoSubscriptionInContext { + get { + return ResourceManager.GetString("NoSubscriptionInContext", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No tenant found in the context. Please ensure that the credentials you provided are authorized to access an Azure subscription, then run Login-AzureRMAccount to login.. + /// + public static string NoTenantInContext { + get { + return ResourceManager.GetString("NoTenantInContext", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path {0} doesn't exist.. + /// + public static string PathDoesNotExist { + get { + return ResourceManager.GetString("PathDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path for {0} doesn't exist in {1}.. + /// + public static string PathDoesNotExistForElement { + get { + return ResourceManager.GetString("PathDoesNotExistForElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &whr={0}. + /// + public static string PublishSettingsFileRealmFormat { + get { + return ResourceManager.GetString("PublishSettingsFileRealmFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing public environment is not supported.. + /// + public static string RemovingDefaultEnvironmentsNotSupported { + get { + return ResourceManager.GetString("RemovingDefaultEnvironmentsNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to retrieve service key for ServicePrincipal account {0}. Please log in again to supply the credentials for this service principal. In PowerShell, execute Login-AzureRMAccount for Azure Resource Manager cmdlets or Add-AzureAccount for service management cmdlets.. + /// + public static string ServiceKeyNotFound { + get { + return ResourceManager.GetString("ServiceKeyNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided service name {0} already exists, please pick another name. + /// + public static string ServiceNameExists { + get { + return ResourceManager.GetString("ServiceNameExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Renewing token using AppId: '{0}', AdalConfiguration with ADDomain: '{1}', AdEndpoint: '{2}', ClientId: '{3}', RedirectUri: '{4}'. + /// + public static string SPNRenewTokenTrace { + get { + return ResourceManager.GetString("SPNRenewTokenTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Checking token expiration, token expires '{0}' Comparing to '{1}' With threshold '{2}', calculated time until token expiry: '{3}'. + /// + public static string SPNTokenExpirationCheckTrace { + get { + return ResourceManager.GetString("SPNTokenExpirationCheckTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription id {0} doesn't exist.. + /// + public static string SubscriptionIdNotFoundMessage { + get { + return ResourceManager.GetString("SubscriptionIdNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription name needs to be specified. + /// + public static string SubscriptionNameNeedsToBeSpecified { + get { + return ResourceManager.GetString("SubscriptionNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription name {0} doesn't exist.. + /// + public static string SubscriptionNameNotFoundMessage { + get { + return ResourceManager.GetString("SubscriptionNameNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription needs to be specified. + /// + public static string SubscriptionNeedsToBeSpecified { + get { + return ResourceManager.GetString("SubscriptionNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No tenant was found for this subscription. Please execute Clear-AzureProfile and then execute Add-AzureAccount.. + /// + public static string TenantNotFound { + get { + return ResourceManager.GetString("TenantNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to update mismatching Json structured: {0} {1}.. + /// + public static string UnableToPatchJson { + get { + return ResourceManager.GetString("UnableToPatchJson", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Illegal credential type. + /// + public static string UnknownCredentialType { + get { + return ResourceManager.GetString("UnknownCredentialType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Certificate authentication is not supported for account type {0}.. + /// + public static string UnsupportedCredentialType { + get { + return ResourceManager.GetString("UnsupportedCredentialType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Acquiring token using AdalConfiguration with Domain: '{0}', AdEndpoint: '{1}', ClientId: '{2}', ClientRedirectUri: {3}. + /// + public static string UPNAcquireTokenConfigTrace { + get { + return ResourceManager.GetString("UPNAcquireTokenConfigTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Acquiring token using context with Authority '{0}', CorrelationId: '{1}', ValidateAuthority: '{2}'. + /// + public static string UPNAcquireTokenContextTrace { + get { + return ResourceManager.GetString("UPNAcquireTokenContextTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Received token with LoginType '{0}', Tenant: '{1}', UserId: '{2}'. + /// + public static string UPNAuthenticationTokenTrace { + get { + return ResourceManager.GetString("UPNAuthenticationTokenTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Authenticating using Account: '{0}', environment: '{1}', tenant: '{2}'. + /// + public static string UPNAuthenticationTrace { + get { + return ResourceManager.GetString("UPNAuthenticationTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Token is expired. + /// + public static string UPNExpiredTokenTrace { + get { + return ResourceManager.GetString("UPNExpiredTokenTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Renewing Token with Type: '{0}', Expiry: '{1}', MultipleResource? '{2}', Tenant: '{3}', UserId: '{4}'. + /// + public static string UPNRenewTokenTrace { + get { + return ResourceManager.GetString("UPNRenewTokenTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: User info for token DisplayId: '{0}', Name: {2} {1}, IdProvider: '{3}', Uid: '{4}'. + /// + public static string UPNRenewTokenUserInfoTrace { + get { + return ResourceManager.GetString("UPNRenewTokenUserInfoTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Checking token expiration, token expires '{0}' Comparing to '{1}' With threshold '{2}', calculated time until token expiry: '{3}'. + /// + public static string UPNTokenExpirationCheckTrace { + get { + return ResourceManager.GetString("UPNTokenExpirationCheckTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name is not valid. + /// + public static string UserNameIsNotValid { + get { + return ResourceManager.GetString("UserNameIsNotValid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name needs to be specified. + /// + public static string UserNameNeedsToBeSpecified { + get { + return ResourceManager.GetString("UserNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (x86). + /// + public static string x86InProgramFiles { + get { + return ResourceManager.GetString("x86InProgramFiles", resourceCulture); + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Properties/Resources.resx b/src/Common/Commands.Common.Authentication/Properties/Resources.resx new file mode 100644 index 000000000000..40dc18b1e1e5 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Properties/Resources.resx @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Account needs to be specified + + + Windows Azure Powershell + + + No certificate was found in the certificate store with thumbprint {0} + + + Changing public environment is not supported. + + + -Credential parameter can only be used with Organization ID credentials. For more information, please refer to http://go.microsoft.com/fwlink/?linkid=331007&clcid=0x409 for more information about the difference between an organizational account and a Microsoft account. + + + Environment name needs to be specified + + + Environment needs to be specified + + + The environment name '{0}' is not found. + + + Your Microsoft Azure credential in the Windows PowerShell session has expired. Please log in again. In PowerShell, execute Login-AzureRMAccount for Azure Resource Manager cmdlets or Add-AzureAccount for service management cmdlets. + + + File path is not valid + + + Illegal characters in path. + + + Invalid certificate format. Publish settings may be corrupted. Use Get-AzurePublishSettingsFile to download updated settings + + + Credential type invalid, only handles '{0}' + + + No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription. + + + "{0}" is an invalid DNS name for {1} + + + The provided file in {0} must be have {1} extension + + + Cannot create instance of management client type {0}. It does not have the expected constructor. + + + {0} is invalid or empty + + + Must specify a non-null subscription name. + + + Your Azure credentials have not been set up or have expired, please run Add-AzureAccount to set up your Azure credentials. + + + Please connect to internet before executing this cmdlet + + + Path {0} doesn't exist. + + + Path for {0} doesn't exist in {1}. + + + &whr={0} + + + Removing public environment is not supported. + + + Unable to retrieve service key for ServicePrincipal account {0}. Please log in again to supply the credentials for this service principal. In PowerShell, execute Login-AzureRMAccount for Azure Resource Manager cmdlets or Add-AzureAccount for service management cmdlets. + + + The provided service name {0} already exists, please pick another name + + + [Common.Authentication]: Renewing token using AppId: '{0}', AdalConfiguration with ADDomain: '{1}', AdEndpoint: '{2}', ClientId: '{3}', RedirectUri: '{4}' + + + [Common.Authentication]: Checking token expiration, token expires '{0}' Comparing to '{1}' With threshold '{2}', calculated time until token expiry: '{3}' + + + The subscription id {0} doesn't exist. + + + Subscription name needs to be specified + + + The subscription name {0} doesn't exist. + + + Subscription needs to be specified + + + Unable to update mismatching Json structured: {0} {1}. + + + Illegal credential type + + + [Common.Authentication]: Acquiring token using AdalConfiguration with Domain: '{0}', AdEndpoint: '{1}', ClientId: '{2}', ClientRedirectUri: {3} + + + [Common.Authentication]: Acquiring token using context with Authority '{0}', CorrelationId: '{1}', ValidateAuthority: '{2}' + + + [Common.Authentication]: Token is expired + + + [Common.Authentication]: Renewing Token with Type: '{0}', Expiry: '{1}', MultipleResource? '{2}', Tenant: '{3}', UserId: '{4}' + + + [Common.Authentication]: User info for token DisplayId: '{0}', Name: {2} {1}, IdProvider: '{3}', Uid: '{4}' + + + [Common.Authentication]: Checking token expiration, token expires '{0}' Comparing to '{1}' With threshold '{2}', calculated time until token expiry: '{3}' + + + User name is not valid + + + User name needs to be specified + + + (x86) + + + No account was found for this subscription. Please execute Clear-AzureProfile and then execute Add-AzureAccount. + + + [Common.Authentication]: Received exception {0}, while authenticating. + + + Multiple tokens were found for this user. Please clear your token cache using, Clear-AzureProfile and try this command again. + + + User Interaction is required to authenticate this user. Please authenticate using the log in dialog. In PowerShell, execute Login-AzureRMAccount for Azure Resource Manager cmdlets or Add-AzureAccount for service management cmdlets. + + + No tenant was found for this subscription. Please execute Clear-AzureProfile and then execute Add-AzureAccount. + + + [Common.Authentication]: Received token with LoginType '{0}', Tenant: '{1}', UserId: '{2}' + + + [Common.Authentication]: Authenticating using Account: '{0}', environment: '{1}', tenant: '{2}' + + + [Common.Authentication]: Authenticating using configuration values: Domain: '{0}', Endpoint: '{1}', ClientId: '{2}', ClientRedirect: '{3}', ResourceClientUri: '{4}', ValidateAuthrity: '{5}' + + + [Common.Authentication]: No matching account record for account {0} in subscription {1} + + + [Common.Authentication]: No matching environment record for environment {0} in subscription {1}, using AzureCloud environment instead + + + [Common.Authentication]: Authenticating for account {0} with single tenant {1} + + + No account found in the context. Please login using Login-AzureRMAccount. + + + User Interaction is required to authenticate this user. Please execute Login-AzureRMAccount without parameters and enter your credentials. + + + Your Azure credentials have not been set up or have expired, please run Login-AzureRMAccount to set up your Azure credentials. + + + No subscription found in the context. Please ensure that the credentials you provided are authorized to access an Azure subscription, then run Login-AzureRMAccount to login. + + + No tenant found in the context. Please ensure that the credentials you provided are authorized to access an Azure subscription, then run Login-AzureRMAccount to login. + + + Certificate authentication is not supported for account type {0}. + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/Utilities/DictionaryExtensions.cs b/src/Common/Commands.Common.Authentication/Utilities/DictionaryExtensions.cs new file mode 100644 index 000000000000..fd279b236a9d --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Utilities/DictionaryExtensions.cs @@ -0,0 +1,78 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.Commands.Common.Authentication.Utilities +{ + public static class DictionaryExtensions + { + public static TValue GetProperty(this Dictionary dictionary, TKey property) + { + if (dictionary.ContainsKey(property)) + { + return dictionary[property]; + } + + return default(TValue); + } + + public static string[] GetPropertyAsArray(this Dictionary dictionary, TKey property) + { + if (dictionary.ContainsKey(property)) + { + return dictionary[property].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + } + + return new string[0]; + } + + public static void SetProperty(this Dictionary dictionary, TKey property, params string[] values) + { + if (values == null || values.Length == 0) + { + if (dictionary.ContainsKey(property)) + { + dictionary.Remove(property); + } + } + else + { + dictionary[property] = string.Join(",", values); + } + } + + public static void SetOrAppendProperty(this Dictionary dictionary, TKey property, params string[] values) + { + string oldValueString = ""; + if (dictionary.ContainsKey(property)) + { + oldValueString = dictionary[property]; + } + var oldValues = oldValueString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + var newValues = oldValues.Union(values, StringComparer.CurrentCultureIgnoreCase).Where(s => !string.IsNullOrEmpty(s)).ToArray(); + if (newValues.Any()) + { + dictionary[property] = string.Join(",", newValues); + } + } + + public static bool IsPropertySet(this Dictionary dictionary, TKey property) + { + return dictionary.ContainsKey(property) && !string.IsNullOrEmpty(dictionary[property]); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Utilities/FileUtilities.cs b/src/Common/Commands.Common.Authentication/Utilities/FileUtilities.cs new file mode 100644 index 000000000000..cb361deaf860 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Utilities/FileUtilities.cs @@ -0,0 +1,321 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using System; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public static class FileUtilities + { + static FileUtilities() + { + DataStore = new DiskDataStore(); + } + + public static IDataStore DataStore { get; set; } + + public static string GetAssemblyDirectory() + { + var assemblyPath = Uri.UnescapeDataString(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath); + return Path.GetDirectoryName(assemblyPath); + } + + public static string GetContentFilePath(string fileName) + { + return GetContentFilePath(GetAssemblyDirectory(), fileName); + } + + public static string GetContentFilePath(string startDirectory, string fileName) + { + string path = Path.Combine(startDirectory, fileName); + + // Try search in the subdirectories in case that the file path does not exist in root path + if (!DataStore.FileExists(path) && !DataStore.DirectoryExists(path)) + { + try + { + path = DataStore.GetDirectories(startDirectory, fileName, SearchOption.AllDirectories).FirstOrDefault(); + + if (string.IsNullOrEmpty(path)) + { + path = DataStore.GetFiles(startDirectory, fileName, SearchOption.AllDirectories).First(); + } + } + catch + { + throw new FileNotFoundException(Path.Combine(startDirectory, fileName)); + } + } + + return path; + } + + public static string GetWithProgramFilesPath(string directoryName, bool throwIfNotFound) + { + string programFilesPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); + if (DataStore.DirectoryExists(Path.Combine(programFilesPath, directoryName))) + { + return Path.Combine(programFilesPath, directoryName); + } + else + { + if (programFilesPath.IndexOf(Resources.x86InProgramFiles, StringComparison.InvariantCultureIgnoreCase) == -1) + { + programFilesPath += Resources.x86InProgramFiles; + if (throwIfNotFound) + { + Validate.ValidateDirectoryExists(Path.Combine(programFilesPath, directoryName)); + } + return Path.Combine(programFilesPath, directoryName); + } + else + { + programFilesPath = programFilesPath.Replace(Resources.x86InProgramFiles, String.Empty); + if (throwIfNotFound) + { + Validate.ValidateDirectoryExists(Path.Combine(programFilesPath, directoryName)); + } + return Path.Combine(programFilesPath, directoryName); + } + } + } + + /// + /// Copies a directory. + /// + /// The source directory name + /// The destination directory name + /// Should the copy be recursive + public static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs) + { + var dirs = DataStore.GetDirectories(sourceDirName); + + if (!DataStore.DirectoryExists(sourceDirName)) + { + throw new DirectoryNotFoundException(String.Format(Resources.PathDoesNotExist, sourceDirName)); + } + + DataStore.CreateDirectory(destDirName); + + var files = DataStore.GetFiles(sourceDirName); + foreach (var file in files) + { + string tempPath = Path.Combine(destDirName, Path.GetFileName(file)); + DataStore.CopyFile(file, tempPath); + } + + if (copySubDirs) + { + foreach (var subdir in dirs) + { + string temppath = Path.Combine(destDirName, Path.GetDirectoryName(subdir)); + DirectoryCopy(subdir, temppath, copySubDirs); + } + } + } + + /// + /// Ensures that a directory exists beofre attempting to write a file + /// + /// The path to the file that will be created + public static void EnsureDirectoryExists(string pathName) + { + Validate.ValidateStringIsNullOrEmpty(pathName, "Settings directory"); + string directoryPath = Path.GetDirectoryName(pathName); + if (!DataStore.DirectoryExists(directoryPath)) + { + DataStore.CreateDirectory(directoryPath); + } + } + + /// + /// Create a unique temp directory. + /// + /// Path to the temp directory. + public static string CreateTempDirectory() + { + string tempPath; + do + { + tempPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); + } + while (DataStore.DirectoryExists(tempPath) || DataStore.FileExists(tempPath)); + + DataStore.CreateDirectory(tempPath); + return tempPath; + } + + /// + /// Copy a directory from one path to another. + /// + /// Source directory. + /// Destination directory. + public static void CopyDirectory(string sourceDirectory, string destinationDirectory) + { + Debug.Assert(!String.IsNullOrEmpty(sourceDirectory), "sourceDictory cannot be null or empty!"); + Debug.Assert(Directory.Exists(sourceDirectory), "sourceDirectory must exist!"); + Debug.Assert(!String.IsNullOrEmpty(destinationDirectory), "destinationDirectory cannot be null or empty!"); + Debug.Assert(!Directory.Exists(destinationDirectory), "destinationDirectory must not exist!"); + + foreach (string file in DataStore.GetFiles(sourceDirectory, "*", SearchOption.AllDirectories)) + { + string relativePath = file.Substring( + sourceDirectory.Length + 1, + file.Length - sourceDirectory.Length - 1); + string destinationPath = Path.Combine(destinationDirectory, relativePath); + + string destinationDir = Path.GetDirectoryName(destinationPath); + if (!DataStore.DirectoryExists(destinationDir)) + { + DataStore.CreateDirectory(destinationDir); + } + + DataStore.CopyFile(file, destinationPath); + } + } + + public static Encoding GetFileEncoding(string path) + { + Encoding encoding; + + + if (DataStore.FileExists(path)) + { + using (StreamReader r = new StreamReader(DataStore.ReadFileAsStream(path))) + { + encoding = r.CurrentEncoding; + } + } + else + { + encoding = Encoding.Default; + } + + return encoding; + } + + public static string CombinePath(params string[] paths) + { + return Path.Combine(paths); + } + + /// + /// Returns true if path is a valid directory. + /// + /// + /// + public static bool IsValidDirectoryPath(string path) + { + if (String.IsNullOrEmpty(path)) + { + return false; + } + + try + { + FileAttributes attributes = DataStore.GetFileAttributes(path); + + if ((attributes & FileAttributes.Directory) == FileAttributes.Directory) + { + return true; + } + else + { + return false; + } + } + catch + { + return false; + } + } + + public static void RecreateDirectory(string dir) + { + if (DataStore.DirectoryExists(dir)) + { + DataStore.DeleteDirectory(dir); + } + + DataStore.CreateDirectory(dir); + } + + /// + /// Gets the root installation path for the given Azure module. + /// + /// The module name + /// The module full path + public static string GetPSModulePathForModule(AzureModule module) + { + return GetContentFilePath(GetInstallPath(), GetModuleFolderName(module)); + } + + /// + /// Gets the root directory for all modules installation. + /// + /// The install path + public static string GetInstallPath() + { + string currentPath = GetAssemblyDirectory(); + while (!currentPath.EndsWith(GetModuleFolderName(AzureModule.AzureProfile)) && + !currentPath.EndsWith(GetModuleFolderName(AzureModule.AzureResourceManager)) && + !currentPath.EndsWith(GetModuleFolderName(AzureModule.AzureServiceManagement))) + { + currentPath = Directory.GetParent(currentPath).FullName; + } + + // The assemption is that the install directory looks like that: + // ServiceManagement + // AzureServiceManagement + // + // ResourceManager + // AzureResourceManager + // + // Profile + // AzureSMProfile + // + return Directory.GetParent(currentPath).FullName; + } + + public static string GetModuleName(AzureModule module) + { + switch (module) + { + case AzureModule.AzureServiceManagement: + return "Azure"; + + case AzureModule.AzureResourceManager: + return "AzureResourceManager"; + + case AzureModule.AzureProfile: + return "AzureProfile"; + + default: + throw new ArgumentOutOfRangeException(module.ToString()); + } + } + + public static string GetModuleFolderName(AzureModule module) + { + return module.ToString().Replace("Azure", ""); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Utilities/JsonUtilities.cs b/src/Common/Commands.Common.Authentication/Utilities/JsonUtilities.cs new file mode 100644 index 000000000000..2149e045b5a0 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Utilities/JsonUtilities.cs @@ -0,0 +1,204 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public static class JsonUtilities + { + [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "Handling the failure by returning the original string.")] + public static string TryFormatJson(string str) + { + try + { + object parsedJson = JsonConvert.DeserializeObject(str); + return JsonConvert.SerializeObject(parsedJson, Formatting.Indented); + } + catch + { + // can't parse JSON, return the original string + return str; + } + } + + public static Dictionary DeserializeJson(string jsonString, bool throwExceptionOnFailure = false) + { + Dictionary result = new Dictionary(); + if (jsonString == null) + { + return null; + } + if (String.IsNullOrWhiteSpace(jsonString)) + { + return result; + } + + try + { + JToken responseDoc = JToken.Parse(jsonString); + + if (responseDoc != null && responseDoc.Type == JTokenType.Object) + { + result = DeserializeJObject(responseDoc as JObject); + } + } + catch + { + if (throwExceptionOnFailure) + { + throw; + } + result = null; + } + return result; + } + + private static Dictionary DeserializeJObject(JObject jsonObject) + { + Dictionary result = new Dictionary(); + if (jsonObject == null || jsonObject.Type == JTokenType.Null) + { + return result; + } + foreach (var property in jsonObject) + { + if (property.Value.Type == JTokenType.Object) + { + result[property.Key] = DeserializeJObject(property.Value as JObject); + } + else if (property.Value.Type == JTokenType.Array) + { + result[property.Key] = DeserializeJArray(property.Value as JArray); + } + else + { + result[property.Key] = DeserializeJValue(property.Value as JValue); + } + } + return result; + } + + private static List DeserializeJArray(JArray jsonArray) + { + List result = new List(); + if (jsonArray == null || jsonArray.Type == JTokenType.Null) + { + return result; + } + foreach (var token in jsonArray) + { + if (token.Type == JTokenType.Object) + { + result.Add(DeserializeJObject(token as JObject)); + } + else if (token.Type == JTokenType.Array) + { + result.Add(DeserializeJArray(token as JArray)); + } + else + { + result.Add(DeserializeJValue(token as JValue)); + } + } + return result; + } + + private static object DeserializeJValue(JValue jsonObject) + { + if (jsonObject == null || jsonObject.Type == JTokenType.Null) + { + return null; + } + + return jsonObject.Value; + } + + public static string Patch(string originalJsonString, string patchJsonString) + { + if (string.IsNullOrWhiteSpace(originalJsonString)) + { + return patchJsonString; + } + else if (string.IsNullOrWhiteSpace(patchJsonString)) + { + return originalJsonString; + } + + JToken originalJson = JToken.Parse(originalJsonString); + JToken patchJson = JToken.Parse(patchJsonString); + + if (originalJson != null && originalJson.Type == JTokenType.Object && + patchJson != null && patchJson.Type == JTokenType.Object) + { + PatchJObject(originalJson as JObject, patchJson as JObject); + } + else if (originalJson != null && originalJson.Type == JTokenType.Array && + patchJson != null && patchJson.Type == JTokenType.Array) + { + originalJson = patchJson; + } + else if (originalJson != null && patchJson != null && originalJson.Type == patchJson.Type) + { + originalJson = patchJson; + } + else + { + throw new ArgumentException(string.Format(Resources.UnableToPatchJson, originalJson, patchJson)); + } + + return originalJson.ToString(Formatting.None); + } + + private static void PatchJObject(JObject originalJsonObject, JObject patchJsonObject) + { + foreach (var patchProperty in patchJsonObject) + { + if (originalJsonObject[patchProperty.Key] != null) + { + JToken originalJson = originalJsonObject[patchProperty.Key]; + JToken patchJson = patchProperty.Value; + + if (originalJson != null && originalJson.Type == JTokenType.Object && + patchJson != null && patchJson.Type == JTokenType.Object) + { + PatchJObject(originalJson as JObject, patchJson as JObject); + } + else if (originalJson != null && originalJson.Type == JTokenType.Array && + patchJson != null && patchJson.Type == JTokenType.Array) + { + originalJsonObject[patchProperty.Key] = patchJson; + } + else if (originalJson != null && patchJson != null && originalJson.Type == patchJson.Type) + { + originalJsonObject[patchProperty.Key] = patchJson; + } + else + { + throw new ArgumentException(string.Format(Resources.UnableToPatchJson, originalJson, patchJson)); + } + } + else + { + originalJsonObject[patchProperty.Key] = patchProperty.Value; + } + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/Utilities/XmlUtilities.cs b/src/Common/Commands.Common.Authentication/Utilities/XmlUtilities.cs new file mode 100644 index 000000000000..8400260fea88 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/Utilities/XmlUtilities.cs @@ -0,0 +1,129 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Properties; +using System; +using System.IO; +using System.Text; +using System.Xml; +using System.Xml.Linq; +using System.Xml.Serialization; + +namespace Microsoft.Azure.Commands.Common.Authentication +{ + public static class XmlUtilities + { + public static T DeserializeXmlFile(string fileName, string exceptionMessage = null) + { + // TODO: fix and uncomment. second parameter is wrong + // Validate.ValidateFileFull(fileName, string.Format(Resources.PathDoesNotExistForElement, string.Empty, fileName)); + + T item; + + XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); + using (TextReader reader = new StreamReader(FileUtilities.DataStore.ReadFileAsStream(fileName))) + { + try { item = (T)xmlSerializer.Deserialize(reader); } + catch + { + if (!String.IsNullOrEmpty(exceptionMessage)) + { + throw new InvalidOperationException(exceptionMessage); + } + else + { + throw; + } + } + } + + return item; + } + + public static void SerializeXmlFile(T obj, string fileName) + { + Validate.ValidatePathName(fileName, String.Format(Resources.PathDoesNotExistForElement, String.Empty, fileName)); + Validate.ValidateStringIsNullOrEmpty(fileName, String.Empty); + + XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); + StringBuilder sBuilder = new StringBuilder(); + using (StringWriter writer = new StringWriter(sBuilder)) + { + xmlSerializer.Serialize(writer, obj); + } + FileUtilities.DataStore.WriteFile(fileName, sBuilder.ToString(), Encoding.Unicode); + } + + public static string SerializeXmlString(T obj) + { + XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); + StringBuilder sBuilder = new StringBuilder(); + + using (StringWriter writer = new StringWriter(sBuilder)) + { + xmlSerializer.Serialize(writer, obj); + } + + return sBuilder.ToString(); + } + + /// + /// Formats the given XML into indented way. + /// + /// The input xml string + /// The formatted xml string + public static string TryFormatXml(string content) + { + try + { + XDocument doc = XDocument.Parse(content); + return doc.ToString(); + } + catch (Exception) + { + return content; + } + } + + /// + /// Formats given string into well formatted XML. + /// + /// The unformatted xml string + /// The formatted XML string + public static string Beautify(string unformattedXml) + { + string formattedXml = String.Empty; + if (!String.IsNullOrEmpty(unformattedXml)) + { + XmlDocument doc = new XmlDocument(); + doc.LoadXml(unformattedXml); + StringBuilder stringBuilder = new StringBuilder(); + XmlWriterSettings settings = new XmlWriterSettings() + { + Indent = true, + IndentChars = "\t", + NewLineChars = Environment.NewLine, + NewLineHandling = NewLineHandling.Replace + }; + using (XmlWriter writer = XmlWriter.Create(stringBuilder, settings)) + { + doc.Save(writer); + } + formattedXml = stringBuilder.ToString(); + } + + return formattedXml; + } + } +} diff --git a/src/Common/Commands.Common.Authentication/packages.config b/src/Common/Commands.Common.Authentication/packages.config new file mode 100644 index 000000000000..a789212c6b80 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/AadAuthenticationException.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/AadAuthenticationException.cs new file mode 100644 index 000000000000..d6742a28cd86 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/AadAuthenticationException.cs @@ -0,0 +1,94 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// Base class representing an exception that occurs when + /// authenticating against Azure Active Directory + /// + [Serializable] + public abstract class AadAuthenticationException : Exception + { + protected AadAuthenticationException() + { + } + + protected AadAuthenticationException(string message) : base(message) + { + } + + protected AadAuthenticationException(string message, Exception innerException) : base(message, innerException) + { + } + } + + /// + /// Exception that gets thrown when the user explicitly + /// cancels an authentication operation. + /// + [Serializable] + public class AadAuthenticationCanceledException : AadAuthenticationException + { + public AadAuthenticationCanceledException(string message, Exception innerException) : base(message, innerException) + { + } + } + + /// + /// Exception that gets thrown when the ADAL library + /// is unable to authenticate without a popup dialog. + /// + [Serializable] + public class AadAuthenticationFailedWithoutPopupException : AadAuthenticationException + { + public AadAuthenticationFailedWithoutPopupException(string message, Exception innerException) + : base(message, innerException) + { + } + } + + /// + /// Exception that gets thrown if an authentication operation + /// fails on the server. + /// + [Serializable] + public class AadAuthenticationFailedException : AadAuthenticationException + { + public AadAuthenticationFailedException(string message, Exception innerException) : base(message, innerException) + { + } + } + + /// + /// Exception thrown if a refresh token has expired. + /// + [Serializable] + public class AadAuthenticationCantRenewException : AadAuthenticationException + { + public AadAuthenticationCantRenewException() + { + } + + public AadAuthenticationCantRenewException(string message) : base(message) + { + } + + public AadAuthenticationCantRenewException(string message, Exception innerException) : base(message, innerException) + { + } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/AccessTokenCredential.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/AccessTokenCredential.cs new file mode 100644 index 000000000000..9af6256a24de --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/AccessTokenCredential.cs @@ -0,0 +1,50 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Common.Authentication +{ + public class AccessTokenCredential : SubscriptionCloudCredentials + { + private readonly Guid subscriptionId; + private readonly IAccessToken token; + + public AccessTokenCredential(Guid subscriptionId, IAccessToken token) + { + this.subscriptionId = subscriptionId; + this.token = token; + this.TenantID = token.TenantId; + } + + public override Task ProcessHttpRequestAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + token.AuthorizeRequest((tokenType, tokenValue) => { + request.Headers.Authorization = new AuthenticationHeaderValue(tokenType, tokenValue); + }); + return base.ProcessHttpRequestAsync(request, cancellationToken); + } + + public override string SubscriptionId + { + get { return subscriptionId.ToString(); } + } + + public string TenantID { get; set; } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/AdalConfiguration.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/AdalConfiguration.cs new file mode 100644 index 000000000000..5b2afb1a98d8 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/AdalConfiguration.cs @@ -0,0 +1,63 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// Class storing the configuration information needed + /// for ADAL to request token from the right AD tenant + /// depending on environment. + /// + public class AdalConfiguration + { + // + // These constants define the default values to use for AD authentication + // against RDFE + // + public const string PowerShellClientId = "1950a258-227b-4e31-a9cf-717495945fc2"; + + public static readonly Uri PowerShellRedirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob"); + + // ID for site to pass to enable EBD (email-based differentiation) + // This gets passed in the call to get the azure branding on the + // login window. Also adding popup flag to handle overly large login windows. + public const string EnableEbdMagicCookie = "site_id=501358&display=popup"; + + public string AdEndpoint { get;set; } + + public bool ValidateAuthority { get; set; } + + public string AdDomain { get; set; } + + public string ClientId { get; set; } + + public Uri ClientRedirectUri { get; set; } + + public string ResourceClientUri { get; set; } + + public TokenCache TokenCache { get; set; } + + public AdalConfiguration() + { + ClientId = PowerShellClientId; + ClientRedirectUri = PowerShellRedirectUri; + ValidateAuthority = true; + AdEndpoint = string.Empty; + ResourceClientUri = "https://management.core.windows.net/"; + } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/AdalTokenProvider.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/AdalTokenProvider.cs new file mode 100644 index 000000000000..889c76dca73f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/AdalTokenProvider.cs @@ -0,0 +1,68 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Common.Authentication.Properties; +using System; +using System.Security; +using System.Windows.Forms; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// A token provider that uses ADAL to retrieve + /// tokens from Azure Active Directory + /// + public class AdalTokenProvider : ITokenProvider + { + private readonly ITokenProvider userTokenProvider; + private readonly ITokenProvider servicePrincipalTokenProvider; + + public AdalTokenProvider() + : this(new ConsoleParentWindow()) + { + } + + public AdalTokenProvider(IWin32Window parentWindow) + { + this.userTokenProvider = new UserTokenProvider(parentWindow); + servicePrincipalTokenProvider = new ServicePrincipalTokenProvider(); + } + + public IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, SecureString password, + AzureAccount.AccountType credentialType) + { + switch (credentialType) + { + case AzureAccount.AccountType.User: + return userTokenProvider.GetAccessToken(config, promptBehavior, userId, password, credentialType); + case AzureAccount.AccountType.ServicePrincipal: + return servicePrincipalTokenProvider.GetAccessToken(config, promptBehavior, userId, password, credentialType); + default: + throw new ArgumentException(Resources.UnknownCredentialType, "credentialType"); + } + } + + public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string clientId, string certificate, AzureAccount.AccountType credentialType) + { + switch (credentialType) + { + case AzureAccount.AccountType.ServicePrincipal: + return servicePrincipalTokenProvider.GetAccessTokenWithCertificate(config, clientId, certificate, credentialType); + default: + throw new ArgumentException(string.Format(Resources.UnsupportedCredentialType, credentialType), "credentialType"); + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/CertificateApplicationCredentialProvider.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/CertificateApplicationCredentialProvider.cs new file mode 100644 index 000000000000..08f334684b34 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/CertificateApplicationCredentialProvider.cs @@ -0,0 +1,60 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Rest.Azure.Authentication; +using System.Security; +using System.Security.Cryptography.X509Certificates; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// Interface to the certificate store for authentication + /// + internal sealed class CertificateApplicationCredentialProvider : IApplicationAuthenticationProvider + { + private string _certificateThumbprint; + + /// + /// Create a certificate provider + /// + /// + public CertificateApplicationCredentialProvider(string certificateThumbprint) + { + this._certificateThumbprint = certificateThumbprint; + } + + /// + /// Authenticate using certificate thumbprint from the datastore + /// + /// The active directory client id for the application. + /// The intended audience for authentication + /// The AD AuthenticationContext to use + /// + public async Task AuthenticateAsync(string clientId, string audience, AuthenticationContext context) + { + var task = new Task(() => + { + return AzureSession.DataStore.GetCertificate(this._certificateThumbprint); + }); + task.Start(); + var certificate = await task.ConfigureAwait(false); + + return await context.AcquireTokenAsync( + audience, + new ClientAssertionCertificate(clientId, certificate)); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/ConsoleParentWindow.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/ConsoleParentWindow.cs new file mode 100644 index 000000000000..a9080fe2972f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/ConsoleParentWindow.cs @@ -0,0 +1,35 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Runtime.InteropServices; +using System.Windows.Forms; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// An implementation of that gives the + /// windows handle for the current console window. + /// + public class ConsoleParentWindow : IWin32Window + { + public IntPtr Handle { get { return NativeMethods.GetConsoleWindow(); } } + + static class NativeMethods + { + [DllImport("kernel32.dll")] + public static extern IntPtr GetConsoleWindow(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/CredStore.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/CredStore.cs new file mode 100644 index 000000000000..a7b61207f044 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/CredStore.cs @@ -0,0 +1,114 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Runtime.ConstrainedExecution; +using System.Runtime.InteropServices; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// Class wrapping PInvoke signatures for Windows Credential store + /// + internal static class CredStore + { + internal enum CredentialType + { + Generic = 1, + } + + internal static class NativeMethods + { + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredRead( + string targetName, + CredentialType type, + int flags, + [Out] out IntPtr pCredential + ); + + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredEnumerate( + string targetName, + int flags, + [Out] out int count, + [Out] out IntPtr pCredential + ); + + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredDelete( + string targetName, + CredentialType type, + int flags + ); + + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredWrite( + IntPtr pCredential, + int flags + ); + + [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] + internal extern static bool CredFree( + IntPtr pCredential + ); + + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable", Justification = "Wrapper for native struct")] + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] + internal struct Credential + { + public Credential(string userName, string key, string value) + { + this.flags = 0; + this.type = CredentialType.Generic; + + // set the key in the targetName + this.targetName = key; + + this.targetAlias = null; + this.comment = null; + this.lastWritten.dwHighDateTime = 0; + this.lastWritten.dwLowDateTime = 0; + + // set the value in credentialBlob. + this.credentialBlob = Marshal.StringToHGlobalUni(value); + this.credentialBlobSize = (uint)((value.Length + 1) * 2); + + this.persist = 1; + this.attibuteCount = 0; + this.attributes = IntPtr.Zero; + this.userName = userName; + } + + internal uint flags; + internal CredentialType type; + internal string targetName; + internal string comment; + internal System.Runtime.InteropServices.ComTypes.FILETIME lastWritten; + internal uint credentialBlobSize; + internal IntPtr credentialBlob; + internal uint persist; + internal uint attibuteCount; + internal IntPtr attributes; + internal string targetAlias; + internal string userName; + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/IAccessToken.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/IAccessToken.cs new file mode 100644 index 000000000000..6e23ebedd3cc --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/IAccessToken.cs @@ -0,0 +1,31 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; + +namespace Microsoft.Azure.Common.Authentication +{ + public interface IAccessToken + { + void AuthorizeRequest(Action authTokenSetter); + + string AccessToken { get; } + + string UserId { get; } + + string TenantId { get; } + + LoginType LoginType { get; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/ITokenProvider.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/ITokenProvider.cs new file mode 100644 index 000000000000..583866b16e2c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/ITokenProvider.cs @@ -0,0 +1,50 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Models; +using System.Security; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// This interface represents objects that can be used + /// to obtain and manage access tokens. + /// + public interface ITokenProvider + { + /// + /// Get a new login token for the given environment, user credential, + /// and credential type. + /// + /// Configuration. + /// Prompt behavior. + /// User ID/Service principal to get the token for. + /// Secure strings with password/service principal key. + /// Credential type. + /// An access token. + IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, + SecureString password, AzureAccount.AccountType credentialType); + + /// + /// Get a new authentication token for the given environment + /// + /// The ADAL Configuration + /// The id for the given principal + /// The certificate thumbprint for this user + /// The account type + /// An access token, which can be renewed + IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string principalId, string certificateThumbprint, + AzureAccount.AccountType credentialType); + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/KeyStoreApplicationCredentialProvider.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/KeyStoreApplicationCredentialProvider.cs new file mode 100644 index 000000000000..f5f2c74034f8 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/KeyStoreApplicationCredentialProvider.cs @@ -0,0 +1,57 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Rest.Azure.Authentication; +using System.Security; +using System.Threading.Tasks; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// Interface to the keystore for authentication + /// + internal sealed class KeyStoreApplicationCredentialProvider : IApplicationAuthenticationProvider + { + private string _tenantId; + + /// + /// Create a credential provider + /// + /// + public KeyStoreApplicationCredentialProvider(string tenant) + { + this._tenantId = tenant; + } + + /// + /// Authenticate using the secret for the specified client from the key store + /// + /// The active directory client id for the application. + /// The intended audience for authentication + /// The AD AuthenticationContext to use + /// + public async Task AuthenticateAsync(string clientId, string audience, AuthenticationContext context) + { + var task = new Task(() => + { + return ServicePrincipalKeyStore.GetKey(clientId, _tenantId); + }); + task.Start(); + var key = await task.ConfigureAwait(false); + + return await context.AcquireTokenAsync(audience, new ClientCredential(clientId, key)); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/LoginType.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/LoginType.cs new file mode 100644 index 000000000000..0924dc5210aa --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/LoginType.cs @@ -0,0 +1,29 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Common.Authentication +{ + public enum LoginType + { + /// + /// User is logging in with orgid credentials + /// + OrgId, + + /// + /// User is logging in with liveid credentials + /// + LiveId + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/ProtectedFileTokenCache.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/ProtectedFileTokenCache.cs new file mode 100644 index 000000000000..b96a98239f8c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/ProtectedFileTokenCache.cs @@ -0,0 +1,121 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; +using System.IO; +using System.Security.Cryptography; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// An implementation of the Adal token cache that stores the cache items + /// in the DPAPI-protected file. + /// + public class ProtectedFileTokenCache : TokenCache + { + private static readonly string CacheFileName = Path.Combine(AzureSession.ProfileDirectory, AzureSession.TokenCacheFile); + + private static readonly object fileLock = new object(); + + private static readonly Lazy instance = new Lazy(() => new ProtectedFileTokenCache()); + + // Initializes the cache against a local file. + // If the file is already present, it loads its content in the ADAL cache + private ProtectedFileTokenCache() + { + Initialize(CacheFileName); + } + + private void Initialize(string fileName) + { + AfterAccess = AfterAccessNotification; + BeforeAccess = BeforeAccessNotification; + lock (fileLock) + { + if (AzureSession.DataStore.FileExists(fileName)) + { + var existingData = AzureSession.DataStore.ReadFileAsBytes(fileName); + if (existingData != null) + { + try + { + Deserialize(ProtectedData.Unprotect(existingData, null, DataProtectionScope.CurrentUser)); + } + catch (CryptographicException) + { + AzureSession.DataStore.DeleteFile(fileName); + } + } + } + } + } + + public ProtectedFileTokenCache(string cacheFile) + { + Initialize(cacheFile); + } + + // Empties the persistent store. + public override void Clear() + { + base.Clear(); + if (AzureSession.DataStore.FileExists(CacheFileName)) + { + AzureSession.DataStore.DeleteFile(CacheFileName); + } + } + + // Triggered right before ADAL needs to access the cache. + // Reload the cache from the persistent store in case it changed since the last access. + void BeforeAccessNotification(TokenCacheNotificationArgs args) + { + lock (fileLock) + { + if (AzureSession.DataStore.FileExists(CacheFileName)) + { + var existingData = AzureSession.DataStore.ReadFileAsBytes(CacheFileName); + if (existingData != null) + { + try + { + Deserialize(ProtectedData.Unprotect(existingData, null, DataProtectionScope.CurrentUser)); + } + catch (CryptographicException) + { + AzureSession.DataStore.DeleteFile(CacheFileName); + } + } + } + } + } + + // Triggered right after ADAL accessed the cache. + void AfterAccessNotification(TokenCacheNotificationArgs args) + { + // if the access operation resulted in a cache update + if (HasStateChanged) + { + lock (fileLock) + { + // reflect changes in the persistent store + AzureSession.DataStore.WriteFile(CacheFileName, + ProtectedData.Protect(Serialize(), null, DataProtectionScope.CurrentUser)); + // once the write operation took place, restore the HasStateChanged bit to false + HasStateChanged = false; + } + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/ServicePrincipalKeyStore.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/ServicePrincipalKeyStore.cs new file mode 100644 index 000000000000..8932ceab8e34 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/ServicePrincipalKeyStore.cs @@ -0,0 +1,117 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Runtime.InteropServices; +using System.Security; +using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// Helper class to store service principal keys and retrieve them + /// from the Windows Credential Store. + /// + public static class ServicePrincipalKeyStore + { + private const string keyStoreUserName = "PowerShellServicePrincipalKey"; + private const string targetNamePrefix = "AzureSession:target="; + + public static void SaveKey(string appId, string tenantId, SecureString serviceKey) + { + var credential = new CredStore.NativeMethods.Credential + { + flags = 0, + type = CredStore.CredentialType.Generic, + targetName = CreateKey(appId, tenantId), + targetAlias = null, + comment = null, + lastWritten = new FILETIME {dwHighDateTime = 0, dwLowDateTime = 0}, + persist = 2, // persist on local machine + attibuteCount = 0, + attributes = IntPtr.Zero, + userName = keyStoreUserName + }; + + // Pull bits out of SecureString to put in credential + IntPtr credPtr = IntPtr.Zero; + try + { + credential.credentialBlob = Marshal.SecureStringToGlobalAllocUnicode(serviceKey); + credential.credentialBlobSize = (uint)(serviceKey.Length * Marshal.SystemDefaultCharSize); + + int size = Marshal.SizeOf(credential); + credPtr = Marshal.AllocHGlobal(size); + + Marshal.StructureToPtr(credential, credPtr, false); + CredStore.NativeMethods.CredWrite(credPtr, 0); + } + finally + { + if (credPtr != IntPtr.Zero) + { + Marshal.FreeHGlobal(credPtr); + } + + Marshal.ZeroFreeGlobalAllocUnicode(credential.credentialBlob); + } + } + + public static SecureString GetKey(string appId, string tenantId) + { + IntPtr pCredential = IntPtr.Zero; + try + { + if (CredStore.NativeMethods.CredRead( + CreateKey(appId, tenantId), + CredStore.CredentialType.Generic, 0, + out pCredential)) + { + var credential = (CredStore.NativeMethods.Credential) + Marshal.PtrToStructure(pCredential, typeof (CredStore.NativeMethods.Credential)); + unsafe + { + return new SecureString((char*) (credential.credentialBlob), + (int)(credential.credentialBlobSize/Marshal.SystemDefaultCharSize)); + } + } + return null; + } + catch + { + // we could be running in an environment that does not have credentials store + } + finally + { + if (pCredential != IntPtr.Zero) + { + CredStore.NativeMethods.CredFree(pCredential); + } + } + + return null; + } + + + public static void DeleteKey(string appId, string tenantId) + { + CredStore.NativeMethods.CredDelete(CreateKey(appId, tenantId), CredStore.CredentialType.Generic, 0); + } + + private static string CreateKey(string appId, string tenantId) + { + return string.Format("{0}AppId={1};Tenant={2}", targetNamePrefix, appId, tenantId); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/ServicePrincipalTokenProvider.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/ServicePrincipalTokenProvider.cs new file mode 100644 index 000000000000..c6d1d4a63aaa --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/ServicePrincipalTokenProvider.cs @@ -0,0 +1,166 @@ +// ---------------------------------------------------------------------------------- +// Copyright Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Common.Authentication.Properties; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; +using System.Collections.Generic; +using System.Security; + +namespace Microsoft.Azure.Common.Authentication +{ + internal class ServicePrincipalTokenProvider : ITokenProvider + { + private static readonly TimeSpan expirationThreshold = TimeSpan.FromMinutes(5); + + public IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, SecureString password, + AzureAccount.AccountType credentialType) + { + if (credentialType == AzureAccount.AccountType.User) + { + throw new ArgumentException(string.Format(Resources.InvalidCredentialType, "User"), "credentialType"); + } + return new ServicePrincipalAccessToken(config, AcquireTokenWithSecret(config, userId, password), this.RenewWithSecret, userId); + } + + public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string clientId, string certificateThumbprint, AzureAccount.AccountType credentialType) + { + if (credentialType == AzureAccount.AccountType.User) + { + throw new ArgumentException(string.Format(Resources.InvalidCredentialType, "User"), "credentialType"); + } + return new ServicePrincipalAccessToken(config, AcquireTokenWithCertificate(config, clientId, certificateThumbprint), + (adalConfig, appId) => this.RenewWithCertificate(adalConfig, appId, certificateThumbprint), clientId); + } + + private AuthenticationContext GetContext(AdalConfiguration config) + { + string authority = config.AdEndpoint + config.AdDomain; + return new AuthenticationContext(authority, config.ValidateAuthority, config.TokenCache); + } + + private AuthenticationResult AcquireTokenWithSecret(AdalConfiguration config, string appId, SecureString appKey) + { + if (appKey == null) + { + return RenewWithSecret(config, appId); + } + + StoreAppKey(appId, config.AdDomain, appKey); + var credential = new ClientCredential(appId, appKey); + var context = GetContext(config); + return context.AcquireToken(config.ResourceClientUri, credential); + } + + private AuthenticationResult AcquireTokenWithCertificate(AdalConfiguration config, string appId, + string thumbprint) + { + var certificate = AzureSession.DataStore.GetCertificate(thumbprint); + if (certificate == null) + { + throw new ArgumentException(string.Format(Resources.CertificateNotFoundInStore, thumbprint)); + } + + var context = GetContext(config); + return context.AcquireToken(config.ResourceClientUri, new ClientAssertionCertificate(appId, certificate)); + } + + private AuthenticationResult RenewWithSecret(AdalConfiguration config, string appId) + { + TracingAdapter.Information(Resources.SPNRenewTokenTrace, appId, config.AdDomain, config.AdEndpoint, + config.ClientId, config.ClientRedirectUri); + using (SecureString appKey = LoadAppKey(appId, config.AdDomain)) + { + if (appKey == null) + { + throw new KeyNotFoundException(string.Format(Resources.ServiceKeyNotFound, appId)); + } + return AcquireTokenWithSecret(config, appId, appKey); + } + } + + private AuthenticationResult RenewWithCertificate(AdalConfiguration config, string appId, + string thumbprint) + { + TracingAdapter.Information(Resources.SPNRenewTokenTrace, appId, config.AdDomain, config.AdEndpoint, + config.ClientId, config.ClientRedirectUri); + return AcquireTokenWithCertificate(config, appId, thumbprint); + } + + private SecureString LoadAppKey(string appId, string tenantId) + { + return ServicePrincipalKeyStore.GetKey(appId, tenantId); + } + + private void StoreAppKey(string appId, string tenantId, SecureString appKey) + { + ServicePrincipalKeyStore.SaveKey(appId, tenantId, appKey); + } + + + private class ServicePrincipalAccessToken : IAccessToken + { + internal readonly AdalConfiguration Configuration; + internal AuthenticationResult AuthResult; + private readonly Func tokenRenewer; + private readonly string appId; + + public ServicePrincipalAccessToken(AdalConfiguration configuration, AuthenticationResult authResult, Func tokenRenewer, string appId) + { + Configuration = configuration; + AuthResult = authResult; + this.tokenRenewer = tokenRenewer; + this.appId = appId; + } + + public void AuthorizeRequest(Action authTokenSetter) + { + if (IsExpired) + { + AuthResult = tokenRenewer(Configuration, appId); + } + + authTokenSetter(AuthResult.AccessTokenType, AuthResult.AccessToken); + } + + public string UserId { get { return appId; } } + public string AccessToken { get { return AuthResult.AccessToken; } } + public LoginType LoginType { get { return LoginType.OrgId; } } + public string TenantId { get { return this.Configuration.AdDomain; } } + + private bool IsExpired + { + get + { +#if DEBUG + if (Environment.GetEnvironmentVariable("FORCE_EXPIRED_ACCESS_TOKEN") != null) + { + return true; + } +#endif + + var expiration = AuthResult.ExpiresOn; + var currentTime = DateTimeOffset.UtcNow; + var timeUntilExpiration = expiration - currentTime; + TracingAdapter.Information(Resources.SPNTokenExpirationCheckTrace, expiration, currentTime, + expirationThreshold, timeUntilExpiration); + return timeUntilExpiration < expirationThreshold; + } + } + } + } +} + diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/ShowDialog.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/ShowDialog.cs new file mode 100644 index 000000000000..a4c4882119bd --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/ShowDialog.cs @@ -0,0 +1,23 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Common.Authentication +{ + public enum ShowDialog + { + Auto, + Always, + Never + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/stuff/Authentication/UserTokenProvider.cs b/src/Common/Commands.Common.Authentication/stuff/Authentication/UserTokenProvider.cs new file mode 100644 index 000000000000..ad20eac71a86 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Authentication/UserTokenProvider.cs @@ -0,0 +1,301 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Common.Authentication.Properties; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; +using System.Runtime.InteropServices; +using System.Security; +using System.Security.Authentication; +using System.Threading; +using System.Windows.Forms; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// A token provider that uses ADAL to retrieve + /// tokens from Azure Active Directory for user + /// credentials. + /// + internal class UserTokenProvider : ITokenProvider + { + private readonly IWin32Window parentWindow; + + public UserTokenProvider(IWin32Window parentWindow) + { + this.parentWindow = parentWindow; + } + + public IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, SecureString password, + AzureAccount.AccountType credentialType) + { + if (credentialType != AzureAccount.AccountType.User) + { + throw new ArgumentException(string.Format(Resources.InvalidCredentialType, "User"), "credentialType"); + } + + return new AdalAccessToken(AcquireToken(config, promptBehavior, userId, password), this, config); + } + + private readonly static TimeSpan expirationThreshold = TimeSpan.FromMinutes(5); + + private bool IsExpired(AdalAccessToken token) + { +#if DEBUG + if (Environment.GetEnvironmentVariable("FORCE_EXPIRED_ACCESS_TOKEN") != null) + { + return true; + } +#endif + var expiration = token.AuthResult.ExpiresOn; + var currentTime = DateTimeOffset.UtcNow; + var timeUntilExpiration = expiration - currentTime; + TracingAdapter.Information(Resources.UPNTokenExpirationCheckTrace, expiration, currentTime, expirationThreshold, + timeUntilExpiration); + return timeUntilExpiration < expirationThreshold; + } + + private void Renew(AdalAccessToken token) + { + TracingAdapter.Information(Resources.UPNRenewTokenTrace, token.AuthResult.AccessTokenType, token.AuthResult.ExpiresOn, + token.AuthResult.IsMultipleResourceRefreshToken, token.AuthResult.TenantId, token.UserId); + var user = token.AuthResult.UserInfo; + if (user != null) + { + TracingAdapter.Information(Resources.UPNRenewTokenUserInfoTrace, user.DisplayableId, user.FamilyName, + user.GivenName, user.IdentityProvider, user.UniqueId); + } + if (IsExpired(token)) + { + TracingAdapter.Information(Resources.UPNExpiredTokenTrace); + AuthenticationResult result = AcquireToken(token.Configuration, ShowDialog.Never, token.UserId, null); + + if (result == null) + { + throw new AuthenticationException(Resources.ExpiredRefreshToken); + } + else + { + token.AuthResult = result; + } + } + } + + private AuthenticationContext CreateContext(AdalConfiguration config) + { + return new AuthenticationContext(config.AdEndpoint + config.AdDomain, config.ValidateAuthority, config.TokenCache) + { + OwnerWindow = parentWindow + }; + } + + // We have to run this in a separate thread to guarantee that it's STA. This method + // handles the threading details. + private AuthenticationResult AcquireToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, + SecureString password) + { + AuthenticationResult result = null; + Exception ex = null; + if (promptBehavior == ShowDialog.Never) + { + result = SafeAquireToken(config, promptBehavior, userId, password, out ex); + } + else + { + var thread = new Thread(() => + { + result = SafeAquireToken(config, promptBehavior, userId, password, out ex); + }); + + thread.SetApartmentState(ApartmentState.STA); + thread.Name = "AcquireTokenThread"; + thread.Start(); + thread.Join(); + } + + if (ex != null) + { + var adex = ex as AdalException; + if (adex != null) + { + if (adex.ErrorCode == AdalError.AuthenticationCanceled) + { + throw new AadAuthenticationCanceledException(adex.Message, adex); + } + } + if (ex is AadAuthenticationException) + { + throw ex; + } + throw new AadAuthenticationFailedException(GetExceptionMessage(ex), ex); + } + + return result; + } + + private AuthenticationResult SafeAquireToken( + AdalConfiguration config, + ShowDialog showDialog, + string userId, + SecureString password, + out Exception ex) + { + try + { + ex = null; + var promptBehavior = (PromptBehavior)Enum.Parse(typeof(PromptBehavior), showDialog.ToString()); + + return DoAcquireToken(config, promptBehavior, userId, password); + } + catch (AdalException adalEx) + { + if (adalEx.ErrorCode == AdalError.UserInteractionRequired || + adalEx.ErrorCode == AdalError.MultipleTokensMatched) + { + string message = Resources.AdalUserInteractionRequired; + if (adalEx.ErrorCode == AdalError.MultipleTokensMatched) + { + message = Resources.AdalMultipleTokens; + } + + ex = new AadAuthenticationFailedWithoutPopupException(message, adalEx); + } + else if (adalEx.ErrorCode == AdalError.MissingFederationMetadataUrl) + { + ex = new AadAuthenticationFailedException(Resources.CredentialOrganizationIdMessage, adalEx); + } + else + { + ex = adalEx; + } + } + catch (Exception threadEx) + { + ex = threadEx; + } + return null; + } + + private AuthenticationResult DoAcquireToken(AdalConfiguration config, PromptBehavior promptBehavior, string userId, + SecureString password) + { + AuthenticationResult result; + var context = CreateContext(config); + + TracingAdapter.Information(Resources.UPNAcquireTokenContextTrace, context.Authority, context.CorrelationId, + context.ValidateAuthority); + TracingAdapter.Information(Resources.UPNAcquireTokenConfigTrace, config.AdDomain, config.AdEndpoint, + config.ClientId, config.ClientRedirectUri); + if (string.IsNullOrEmpty(userId)) + { + if (promptBehavior != PromptBehavior.Never) + { + ClearCookies(); + } + + result = context.AcquireToken(config.ResourceClientUri, config.ClientId, + config.ClientRedirectUri, promptBehavior, + UserIdentifier.AnyUser, AdalConfiguration.EnableEbdMagicCookie); + } + else + { + if (password == null) + { + result = context.AcquireToken(config.ResourceClientUri, config.ClientId, + config.ClientRedirectUri, promptBehavior, + new UserIdentifier(userId, UserIdentifierType.RequiredDisplayableId), + AdalConfiguration.EnableEbdMagicCookie); + } + else + { + UserCredential credential = new UserCredential(userId, password); + result = context.AcquireToken(config.ResourceClientUri, config.ClientId, credential); + } + } + return result; + } + + private string GetExceptionMessage(Exception ex) + { + string message = ex.Message; + if (ex.InnerException != null) + { + message += ": " + ex.InnerException.Message; + } + return message; + } + /// + /// Implementation of using data from ADAL + /// + private class AdalAccessToken : IAccessToken + { + internal readonly AdalConfiguration Configuration; + internal AuthenticationResult AuthResult; + private readonly UserTokenProvider tokenProvider; + + public AdalAccessToken(AuthenticationResult authResult, UserTokenProvider tokenProvider, AdalConfiguration configuration) + { + AuthResult = authResult; + this.tokenProvider = tokenProvider; + Configuration = configuration; + } + + public void AuthorizeRequest(Action authTokenSetter) + { + tokenProvider.Renew(this); + authTokenSetter(AuthResult.AccessTokenType, AuthResult.AccessToken); + } + + public string AccessToken { get { return AuthResult.AccessToken; } } + public string UserId { get { return AuthResult.UserInfo.DisplayableId; } } + + public string TenantId { get { return AuthResult.TenantId; } } + + public LoginType LoginType + { + get + { + if (AuthResult.UserInfo.IdentityProvider != null) + { + return LoginType.LiveId; + } + return LoginType.OrgId; + } + } + } + + + private void ClearCookies() + { + NativeMethods.InternetSetOption(IntPtr.Zero, NativeMethods.INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0); + } + + private static class NativeMethods + { + internal const int INTERNET_OPTION_END_BROWSER_SESSION = 42; + + [DllImport("wininet.dll", SetLastError = true)] + internal static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, + int lpdwBufferLength); + } + + public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string clientId, string certificate, AzureAccount.AccountType credentialType) + { + throw new NotImplementedException(); + } + } +} + diff --git a/src/Common/Commands.Common.Authentication/stuff/AzureSession.cs b/src/Common/Commands.Common.Authentication/stuff/AzureSession.cs new file mode 100644 index 000000000000..ac6d1236750d --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/AzureSession.cs @@ -0,0 +1,89 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Factories; +using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Common.Authentication.Properties; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using System; +using System.IO; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// Represents current Azure session. + /// + public static class AzureSession + { + /// + /// Gets or sets Azure client factory. + /// + public static IClientFactory ClientFactory { get; set; } + + /// + /// Gets or sets Azure authentication factory. + /// + public static IAuthenticationFactory AuthenticationFactory { get; set; } + + /// + /// Gets or sets data persistence store. + /// + public static IDataStore DataStore { get; set; } + + /// + /// Gets or sets the token cache store. + /// + public static TokenCache TokenCache { get; set; } + + /// + /// Gets or sets profile directory. + /// + public static string ProfileDirectory { get; set; } + + /// + /// Gets or sets token cache file path. + /// + public static string TokenCacheFile { get; set; } + + /// + /// Gets or sets profile file name. + /// + public static string ProfileFile { get; set; } + + /// + /// Gets or sets file name for the migration backup. + /// + public static string OldProfileFileBackup { get; set; } + + /// + /// Gets or sets old profile file name. + /// + public static string OldProfileFile { get; set; } + + static AzureSession() + { + ClientFactory = new ClientFactory(); + AuthenticationFactory = new AuthenticationFactory(); + DataStore = new MemoryDataStore(); + TokenCache = new TokenCache(); + OldProfileFile = "WindowsAzureProfile.xml"; + OldProfileFileBackup = "WindowsAzureProfile.xml.bak"; + ProfileDirectory = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), + Resources.AzureDirectoryName); ; + ProfileFile = "AzureProfile.json"; + TokenCacheFile = "TokenCache.dat"; + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Common/AzureModule.cs b/src/Common/Commands.Common.Authentication/stuff/Common/AzureModule.cs new file mode 100644 index 000000000000..21de827e3025 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Common/AzureModule.cs @@ -0,0 +1,23 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Common.Authentication +{ + public enum AzureModule + { + AzureServiceManagement, + AzureResourceManager, + AzureProfile + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Common/ProfileData.cs b/src/Common/Commands.Common.Authentication/stuff/Common/ProfileData.cs new file mode 100644 index 000000000000..67118a0119d7 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Common/ProfileData.cs @@ -0,0 +1,272 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; + +namespace Microsoft.Azure.Common.Authentication +{ + /// + /// This class provides the representation of + /// data loaded and saved into data files + /// for AzureSMProfile. + /// + [DataContract] + public class ProfileData + { + [DataMember] + public string DefaultEnvironmentName { get; set; } + + [DataMember] + public IEnumerable Environments { get; set; } + + [DataMember] + public IEnumerable Subscriptions { get; set; } + } + + /// + /// This class provides the representation of + /// data loaded and saved into data files for + /// an individual Azure environment + /// + [DataContract] + public class AzureEnvironmentData + { + public AzureEnvironment ToAzureEnvironment() + { + return new AzureEnvironment + { + Name = this.Name, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, this.ActiveDirectoryServiceEndpointResourceId }, + { AzureEnvironment.Endpoint.AdTenant, this.AdTenantUrl }, + { AzureEnvironment.Endpoint.Gallery, this.GalleryEndpoint }, + { AzureEnvironment.Endpoint.ManagementPortalUrl, this.ManagementPortalUrl }, + { AzureEnvironment.Endpoint.PublishSettingsFileUrl, this.PublishSettingsFileUrl }, + { AzureEnvironment.Endpoint.ResourceManager, this.ResourceManagerEndpoint }, + { AzureEnvironment.Endpoint.ServiceManagement, this.ServiceEndpoint }, + { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, this.SqlDatabaseDnsSuffix }, + { AzureEnvironment.Endpoint.StorageEndpointSuffix, this.StorageEndpointSuffix }, + { AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, this.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix }, + { AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, this.AzureDataLakeStoreFileSystemEndpointSuffix }, + } + }; + } + + [DataMember] + public string Name { get; set; } + + [DataMember] + public string PublishSettingsFileUrl { get; set; } + + [DataMember] + public string ServiceEndpoint { get; set; } + + [DataMember] + public string ResourceManagerEndpoint { get; set; } + + [DataMember] + public string ManagementPortalUrl { get; set; } + + [DataMember] + public string StorageEndpointSuffix { get; set; } + + [DataMember] + public string AdTenantUrl { get; set; } + + [DataMember] + public string CommonTenantId { get; set; } + + [DataMember] + public string GalleryEndpoint { get; set; } + + [DataMember] + public string ActiveDirectoryServiceEndpointResourceId { get; set; } + + [DataMember] + public string SqlDatabaseDnsSuffix { get; set; } + + [DataMember] + public string TrafficManagerEndpointSuffix { get; set; } + + [DataMember] + public string AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix { get; set; } + + [DataMember] + public string AzureDataLakeStoreFileSystemEndpointSuffix { get; set; } + } + + /// + /// This class provides the representation of data loaded + /// and saved into data file for an individual Azure subscription. + /// + [DataContract] + public class AzureSubscriptionData + { + /// + /// Constructor used by DataContractSerializer + /// + public AzureSubscriptionData() + { + } + + public AzureSubscription ToAzureSubscription(List envs) + { + AzureSubscription subscription = new AzureSubscription(); + try + { + subscription.Id = new Guid(this.SubscriptionId); + } + catch (Exception ex) + { + throw new ArgumentException("Subscription ID is not a valid GUID.", ex); + } + subscription.Name = Name; + + // Logic to detect what is the subscription environment rely's on having ManagementEndpoint (i.e. RDFE endpoint) set already on the subscription + List allEnvs = envs.Union(AzureEnvironment.PublicEnvironments.Values).ToList(); + AzureEnvironment env = allEnvs.FirstOrDefault(e => e.IsEndpointSetToValue(AzureEnvironment.Endpoint.ServiceManagement, this.ManagementEndpoint)); + + if (env != null) + { + subscription.Environment = env.Name; + } + else + { + subscription.Environment = EnvironmentName.AzureCloud; + } + + if (!string.IsNullOrEmpty(this.ManagementCertificate)) + { + subscription.Account = this.ManagementCertificate; + } + + if (!string.IsNullOrEmpty(this.ActiveDirectoryUserId)) + { + subscription.Account = this.ActiveDirectoryUserId; + } + + if (!string.IsNullOrEmpty(this.ActiveDirectoryTenantId)) + { + subscription.SetProperty(AzureSubscription.Property.Tenants, ActiveDirectoryTenantId); + } + + if (this.IsDefault) + { + subscription.SetProperty(AzureSubscription.Property.Default, "True"); + } + + if (!string.IsNullOrEmpty(this.CloudStorageAccount)) + { + subscription.Properties.Add(AzureSubscription.Property.StorageAccount, this.CloudStorageAccount); + } + + if (this.RegisteredResourceProviders.Count() > 0) + { + StringBuilder providers = new StringBuilder(); + subscription.Properties.Add(AzureSubscription.Property.RegisteredResourceProviders, + string.Join(",", RegisteredResourceProviders)); + } + + return subscription; + } + + public IEnumerable ToAzureAccounts() + { + if (!string.IsNullOrEmpty(ActiveDirectoryUserId)) + { + AzureAccount userAccount = new AzureAccount + { + Id = ActiveDirectoryUserId, + Type = AzureAccount.AccountType.User + }; + + userAccount.SetProperty(AzureAccount.Property.Subscriptions, new Guid(this.SubscriptionId).ToString()); + + if (!string.IsNullOrEmpty(ActiveDirectoryTenantId)) + { + userAccount.SetProperty(AzureAccount.Property.Tenants, ActiveDirectoryTenantId); + } + + yield return userAccount; + } + + if (!string.IsNullOrEmpty(ManagementCertificate)) + { + AzureAccount certificateAccount = new AzureAccount + { + Id = ManagementCertificate, + Type = AzureAccount.AccountType.Certificate + }; + + certificateAccount.SetProperty(AzureAccount.Property.Subscriptions, new Guid(this.SubscriptionId).ToString()); + + yield return certificateAccount; + } + } + + [DataMember] + public string Name { get; set; } + + [DataMember] + public string SubscriptionId { get; set; } + + [DataMember] + public string ManagementEndpoint { get; set; } + + [DataMember] + public string ResourceManagerEndpoint { get; set; } + + [DataMember] + public string ActiveDirectoryEndpoint { get; set; } + + [DataMember] + public string ActiveDirectoryTenantId { get; set; } + + [DataMember] + public string ActiveDirectoryUserId { get; set; } + + [DataMember] + public string LoginType { get; set; } + + [DataMember] + public bool IsDefault { get; set; } + + [DataMember] + public string ManagementCertificate { get; set; } + + [DataMember] + public string CloudStorageAccount { get; set; } + + [DataMember] + public IEnumerable RegisteredResourceProviders { get; set; } + + [DataMember] + public string GalleryEndpoint { get; set; } + + [DataMember] + public string ActiveDirectoryServiceEndpointResourceId { get; set; } + + [DataMember] + public string SqlDatabaseDnsSuffix { get; set; } + + [DataMember] + public string TrafficManagerEndpointSuffix { get; set; } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/stuff/Common/Validate.cs b/src/Common/Commands.Common.Authentication/stuff/Common/Validate.cs new file mode 100644 index 000000000000..fbea0fea0ac9 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Common/Validate.cs @@ -0,0 +1,218 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Properties; +using System; +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Runtime.InteropServices; + +namespace Microsoft.Azure.Common.Authentication +{ + public static class Validate + { + [Flags] + enum InternetConnectionState : int + { + INTERNET_CONNECTION_MODEM = 0x1, + INTERNET_CONNECTION_LAN = 0x2, + INTERNET_CONNECTION_PROXY = 0x4, + INTERNET_RAS_INSTALLED = 0x10, + INTERNET_CONNECTION_OFFLINE = 0x20, + INTERNET_CONNECTION_CONFIGURED = 0x40 + } + + [SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass", Justification = "Not necessary for a single p-invoke")] + [DllImport("WININET", CharSet = CharSet.Auto)] + static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved); + + /// + /// Validates against given string if null or empty. + /// + /// string variable to validate + /// This parameter is used when the validation fails. It can contain actual message to display + /// or parameter name to display with default message + /// Indicates either to use messageData as actual message or parameter name + public static void ValidateStringIsNullOrEmpty(string data, string messageData, bool useDefaultMessage = true) + { + if (string.IsNullOrEmpty(data)) + { + // In this case use messageData parameter as name for null/empty string. + if (useDefaultMessage) + { + throw new ArgumentException(string.Format(Resources.InvalidOrEmptyArgumentMessage, messageData)); + } + else + { + // Use the message provided by the user + throw new ArgumentException(messageData); + } + } + } + + public static void ValidatePathName(string element, string exceptionMessage) + { + if (element.IndexOfAny(Path.GetInvalidPathChars()) != -1) + { + throw new ArgumentException(exceptionMessage); + } + } + + public static void ValidateFileName(string element, string exceptionMessage = null) + { + try + { + string fileName = Path.GetFileName(element); + + if (fileName.IndexOfAny(Path.GetInvalidFileNameChars()) != -1) + { + throw new ArgumentException(exceptionMessage ?? string.Empty); + } + } + catch + { + throw new ArgumentException(exceptionMessage ?? string.Empty); + } + } + + public static void ValidateFileExists(string filePath, string exceptionMessage) + { + if (!FileUtilities.DataStore.FileExists(filePath)) + { + throw new FileNotFoundException(exceptionMessage); + } + } + + public static void ValidateDirectoryExists(string directory, string exceptionMessage = null) + { + string msg = string.Format(Resources.PathDoesNotExist, directory); + + if (!FileUtilities.DataStore.DirectoryExists(directory)) + { + if (!string.IsNullOrEmpty(exceptionMessage)) + { + msg = exceptionMessage; + } + + throw new FileNotFoundException(msg); + } + } + + public static void ValidateNullArgument(object item, string exceptionMessage) + { + if (item == null) + { + throw new ArgumentException(exceptionMessage); + } + } + + public static void ValidateFileExtention(string filePath, string desiredExtention) + { + bool invalidExtension = Convert.ToBoolean(string.Compare(Path.GetExtension(filePath), desiredExtention, true)); + + if (invalidExtension) + { + throw new ArgumentException(string.Format(Resources.InvalidFileExtension, filePath, desiredExtention)); + } + } + + public static void ValidateDnsName(string dnsName, string parameterName) + { + if (Uri.CheckHostName(dnsName) != UriHostNameType.Dns || dnsName.EndsWith("-")) + { + throw new ArgumentException(string.Format(Resources.InvalidDnsName, dnsName, parameterName)); + } + } + + public static void ValidateDnsDoesNotExist(string dnsName) + { + try + { + Dns.GetHostEntry(dnsName); + // Dns does exist throw exception + // + throw new ArgumentException(string.Format(Resources.ServiceNameExists, dnsName)); + } + catch (SocketException) + { + // Dns doesn't exist + } + } + + public static void ValidateInternetConnection() + { + InternetConnectionState flags = 0; + + if (!InternetGetConnectedState(ref flags, 0)) + { + throw new Exception(Resources.NoInternetConnection); + } + } + + public static void HasWhiteCharacter(string text, string exceptionMessage = null) + { + if (text.Any(char.IsWhiteSpace)) + { + throw new ArgumentException(exceptionMessage ?? string.Empty); + } + } + + /// + /// Make validation for given path. + /// + /// Path to validate + /// message to display if this validation failed + public static void ValidatePath(string path, string exceptionMessage) + { + ValidateStringIsNullOrEmpty(path, exceptionMessage, false); + ValidatePathName(path, exceptionMessage); + } + + /// + /// Validates against given directory + /// + /// Directory name + /// Name which you use to identify that directory to user (i.e. AzureSdkDirectory) + public static void ValidateDirectoryFull(string directoryNameOnDisk, string directoryName) + { + BasicFileAndDirectoryValidation(directoryNameOnDisk, directoryName); + ValidateDirectoryExists(directoryNameOnDisk, string.Format(Resources.PathDoesNotExistForElement, directoryName, directoryNameOnDisk)); + } + + private static void BasicFileAndDirectoryValidation(string fullPath, string name) + { + ValidateStringIsNullOrEmpty(fullPath, name); + ValidateFileName(fullPath, Resources.IllegalPath); + string directoryPath = Path.GetDirectoryName(fullPath); + if (!string.IsNullOrEmpty(directoryPath)) + { + ValidatePath(fullPath, Resources.IllegalPath); + } + } + + /// + /// Validates against given file + /// + /// File name + /// Name which you use to identify that directory to user (i.e. Service Settings) + public static void ValidateFileFull(string fileNameOnDisk, string fileName) + { + BasicFileAndDirectoryValidation(fileNameOnDisk, fileName); + ValidateFileExists(fileNameOnDisk, string.Format(Resources.PathDoesNotExistForElement, fileName, fileNameOnDisk)); + } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common.Authentication/stuff/Extensions/CloudExceptionExtensions.cs b/src/Common/Commands.Common.Authentication/stuff/Extensions/CloudExceptionExtensions.cs new file mode 100644 index 000000000000..f51f6698d518 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Extensions/CloudExceptionExtensions.cs @@ -0,0 +1,50 @@ +// +// Copyright (c) Microsoft. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +using Hyak.Common; +using System.Linq; + +namespace Microsoft.Azure.Common +{ + public static class CloudExceptionExtensions + { + public static string GetRequestId(this CloudException exception) + { + if(exception == null || + exception.Response == null || + exception.Response.Headers == null || + !exception.Response.Headers.Keys.Contains("x-ms-request-id")) + { + return null; + } + + return exception.Response.Headers["x-ms-request-id"].FirstOrDefault(); + + } + public static string GetRoutingRequestId(this CloudException exception) + { + if (exception == null || + exception.Response == null || + exception.Response.Headers == null || + !exception.Response.Headers.Keys.Contains("x-ms-routing-request-id")) + { + return null; + } + + return exception.Response.Headers["x-ms-routing-request-id"].FirstOrDefault(); + + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Factories/AuthenticationFactory.cs b/src/Common/Commands.Common.Authentication/stuff/Factories/AuthenticationFactory.cs new file mode 100644 index 000000000000..9ded6ea85554 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Factories/AuthenticationFactory.cs @@ -0,0 +1,302 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Common.Authentication.Properties; +using System; +using System.Linq; +using System.Security; +using Hyak.Common; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Rest; +using Microsoft.Rest.Azure.Authentication; + +namespace Microsoft.Azure.Common.Authentication.Factories +{ + public class AuthenticationFactory : IAuthenticationFactory + { + public const string CommonAdTenant = "Common"; + + public AuthenticationFactory() + { + TokenProvider = new AdalTokenProvider(); + } + + public ITokenProvider TokenProvider { get; set; } + + public IAccessToken Authenticate( + AzureAccount account, + AzureEnvironment environment, + string tenant, + SecureString password, + ShowDialog promptBehavior, + TokenCache tokenCache, + AzureEnvironment.Endpoint resourceId = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId) + { + var configuration = GetAdalConfiguration(environment, tenant, resourceId, tokenCache); + + TracingAdapter.Information(Resources.AdalAuthConfigurationTrace, configuration.AdDomain, configuration.AdEndpoint, + configuration.ClientId, configuration.ClientRedirectUri, configuration.ResourceClientUri, configuration.ValidateAuthority); + IAccessToken token; + if (account.IsPropertySet(AzureAccount.Property.CertificateThumbprint)) + { + var thumbprint = account.GetProperty(AzureAccount.Property.CertificateThumbprint); + token = TokenProvider.GetAccessTokenWithCertificate(configuration, account.Id, thumbprint, account.Type); + } + else + { + + token = TokenProvider.GetAccessToken(configuration, promptBehavior, account.Id, password, account.Type); + } + + account.Id = token.UserId; + return token; + } + + public IAccessToken Authenticate( + AzureAccount account, + AzureEnvironment environment, + string tenant, + SecureString password, + ShowDialog promptBehavior, + AzureEnvironment.Endpoint resourceId = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId) + { + return Authenticate(account, environment, tenant, password, promptBehavior, AzureSession.TokenCache, resourceId); + } + + public SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context) + { + return GetSubscriptionCloudCredentials(context, AzureEnvironment.Endpoint.ServiceManagement); + } + + public SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context, AzureEnvironment.Endpoint targetEndpoint) + { + if (context.Subscription == null) + { + var exceptionMessage = targetEndpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.InvalidDefaultSubscription + : Resources.NoSubscriptionInContext; + throw new ApplicationException(exceptionMessage); + } + + if (context.Account == null) + { + var exceptionMessage = targetEndpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.AccountNotFound + : Resources.ArmAccountNotFound; + throw new ArgumentException(exceptionMessage); + } + + if (context.Account.Type == AzureAccount.AccountType.Certificate) + { + var certificate = AzureSession.DataStore.GetCertificate(context.Account.Id); + return new CertificateCloudCredentials(context.Subscription.Id.ToString(), certificate); + } + + if (context.Account.Type == AzureAccount.AccountType.AccessToken) + { + return new TokenCloudCredentials(context.Subscription.Id.ToString(), context.Account.GetProperty(AzureAccount.Property.AccessToken)); + } + + string tenant = null; + + if (context.Subscription != null && context.Account != null) + { + tenant = context.Subscription.GetPropertyAsArray(AzureSubscription.Property.Tenants) + .Intersect(context.Account.GetPropertyAsArray(AzureAccount.Property.Tenants)) + .FirstOrDefault(); + } + + if (tenant == null && context.Tenant != null && context.Tenant.Id != Guid.Empty) + { + tenant = context.Tenant.Id.ToString(); + } + + if (tenant == null) + { + var exceptionMessage = targetEndpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.TenantNotFound + : Resources.NoTenantInContext; + throw new ArgumentException(exceptionMessage); + } + + try + { + TracingAdapter.Information(Resources.UPNAuthenticationTrace, + context.Account.Id, context.Environment.Name, tenant); + var tokenCache = AzureSession.TokenCache; + if (context.TokenCache != null && context.TokenCache.Length > 0) + { + tokenCache = new TokenCache(context.TokenCache); + } + + var token = Authenticate(context.Account, context.Environment, + tenant, null, ShowDialog.Never, tokenCache, context.Environment.GetTokenAudience(targetEndpoint)); + + if (context.TokenCache != null && context.TokenCache.Length > 0) + { + context.TokenCache = tokenCache.Serialize(); + } + + TracingAdapter.Information(Resources.UPNAuthenticationTokenTrace, + token.LoginType, token.TenantId, token.UserId); + return new AccessTokenCredential(context.Subscription.Id, token); + } + catch (Exception ex) + { + TracingAdapter.Information(Resources.AdalAuthException, ex.Message); + var exceptionMessage = targetEndpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.InvalidSubscriptionState + : Resources.InvalidArmContext; + throw new ArgumentException(exceptionMessage, ex); + } + } + + public ServiceClientCredentials GetServiceClientCredentials(AzureContext context) + { + return GetServiceClientCredentials(context, + AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId); + } + + public ServiceClientCredentials GetServiceClientCredentials(AzureContext context, AzureEnvironment.Endpoint targetEndpoint) + { + if (context.Account == null) + { + throw new ArgumentException(Resources.ArmAccountNotFound); + } + + if (context.Account.Type == AzureAccount.AccountType.Certificate) + { + throw new NotSupportedException(AzureAccount.AccountType.Certificate.ToString()); + } + + if (context.Account.Type == AzureAccount.AccountType.AccessToken) + { + return new TokenCredentials(context.Account.GetProperty(AzureAccount.Property.AccessToken)); + } + + string tenant = null; + + if (context.Subscription != null && context.Account != null) + { + tenant = context.Subscription.GetPropertyAsArray(AzureSubscription.Property.Tenants) + .Intersect(context.Account.GetPropertyAsArray(AzureAccount.Property.Tenants)) + .FirstOrDefault(); + } + + if (tenant == null && context.Tenant != null && context.Tenant.Id != Guid.Empty) + { + tenant = context.Tenant.Id.ToString(); + } + + if (tenant == null) + { + throw new ArgumentException(Resources.NoTenantInContext); + } + + try + { + TracingAdapter.Information(Resources.UPNAuthenticationTrace, + context.Account.Id, context.Environment.Name, tenant); + + // TODO: When we will refactor the code, need to add tracing + /*TracingAdapter.Information(Resources.UPNAuthenticationTokenTrace, + token.LoginType, token.TenantId, token.UserId);*/ + + var env = new ActiveDirectoryServiceSettings + { + AuthenticationEndpoint = context.Environment.GetEndpointAsUri(AzureEnvironment.Endpoint.ActiveDirectory), + TokenAudience = context.Environment.GetEndpointAsUri(context.Environment.GetTokenAudience(targetEndpoint)), + ValidateAuthority = !context.Environment.OnPremise + }; + + var tokenCache = AzureSession.TokenCache; + + if (context.TokenCache != null && context.TokenCache.Length > 0) + { + tokenCache = new TokenCache(context.TokenCache); + } + + ServiceClientCredentials result = null; + + if (context.Account.Type == AzureAccount.AccountType.User) + { + result = Rest.Azure.Authentication.UserTokenProvider.CreateCredentialsFromCache( + AdalConfiguration.PowerShellClientId, + tenant, + context.Account.Id, + env, + tokenCache).ConfigureAwait(false).GetAwaiter().GetResult(); + } + else if (context.Account.Type == AzureAccount.AccountType.ServicePrincipal) + { + if (context.Account.IsPropertySet(AzureAccount.Property.CertificateThumbprint)) + { + result = ApplicationTokenProvider.LoginSilentAsync( + tenant, + context.Account.Id, + new CertificateApplicationCredentialProvider( + context.Account.GetProperty(AzureAccount.Property.CertificateThumbprint)), + env, + tokenCache).ConfigureAwait(false).GetAwaiter().GetResult(); + } + else + { + result = ApplicationTokenProvider.LoginSilentAsync( + tenant, + context.Account.Id, + new KeyStoreApplicationCredentialProvider(tenant), + env, + tokenCache).ConfigureAwait(false).GetAwaiter().GetResult(); + } + } + else + { + throw new NotSupportedException(context.Account.Type.ToString()); + } + + if (context.TokenCache != null && context.TokenCache.Length > 0) + { + context.TokenCache = tokenCache.Serialize(); + } + + return result; + } + catch (Exception ex) + { + TracingAdapter.Information(Resources.AdalAuthException, ex.Message); + throw new ArgumentException(Resources.InvalidArmContext, ex); + } + } + + private AdalConfiguration GetAdalConfiguration(AzureEnvironment environment, string tenantId, + AzureEnvironment.Endpoint resourceId, TokenCache tokenCache) + { + if (environment == null) + { + throw new ArgumentNullException("environment"); + } + var adEndpoint = environment.Endpoints[AzureEnvironment.Endpoint.ActiveDirectory]; + + return new AdalConfiguration + { + AdEndpoint = adEndpoint, + ResourceClientUri = environment.Endpoints[resourceId], + AdDomain = tenantId, + ValidateAuthority = !environment.OnPremise, + TokenCache = tokenCache + }; + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Factories/ClientFactory.cs b/src/Common/Commands.Common.Authentication/stuff/Factories/ClientFactory.cs new file mode 100644 index 000000000000..39004b1b23bf --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Factories/ClientFactory.cs @@ -0,0 +1,312 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Common.Authentication.Properties; +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; + +namespace Microsoft.Azure.Common.Authentication.Factories +{ + public class ClientFactory : IClientFactory + { + private static readonly char[] uriPathSeparator = { '/' }; + + private Dictionary _actions; + private OrderedDictionary _handlers; + + public ClientFactory() + { + _actions = new Dictionary(); + UserAgents = new HashSet(); + _handlers = new OrderedDictionary(); + } + + public virtual TClient CreateArmClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : Microsoft.Rest.ServiceClient + { + if (context == null) + { + throw new ApplicationException(Resources.NoSubscriptionInContext); + } + + var creds = AzureSession.AuthenticationFactory.GetServiceClientCredentials(context); + var newHandlers = GetCustomHandlers(); + TClient client = (newHandlers == null || newHandlers.Length == 0) + ? CreateCustomArmClient(context.Environment.GetEndpointAsUri(endpoint), creds) + : CreateCustomArmClient(context.Environment.GetEndpointAsUri(endpoint), creds, GetCustomHandlers()); + + var subscriptionId = typeof(TClient).GetProperty("SubscriptionId"); + if (subscriptionId != null && context.Subscription != null) + { + subscriptionId.SetValue(client, context.Subscription.Id.ToString()); + } + + return client; + } + + public virtual TClient CreateCustomArmClient(params object[] parameters) where TClient : Microsoft.Rest.ServiceClient + { + List types = new List(); + foreach (object obj in parameters) + { + types.Add(obj.GetType()); + } + + var constructor = typeof(TClient).GetConstructor(types.ToArray()); + + if (constructor == null) + { + throw new InvalidOperationException(string.Format(Resources.InvalidManagementClientType, typeof(TClient).Name)); + } + + TClient client = (TClient)constructor.Invoke(parameters); + + foreach (ProductInfoHeaderValue userAgent in UserAgents) + { + client.UserAgent.Add(userAgent); + } + + return client; + } + + public virtual TClient CreateClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient + { + if (context == null) + { + var exceptionMessage = endpoint == AzureEnvironment.Endpoint.ServiceManagement + ? Resources.InvalidDefaultSubscription + : Resources.NoSubscriptionInContext; + throw new ApplicationException(exceptionMessage); + } + + SubscriptionCloudCredentials creds = AzureSession.AuthenticationFactory.GetSubscriptionCloudCredentials(context, endpoint); + TClient client = CreateCustomClient(creds, context.Environment.GetEndpointAsUri(endpoint)); + foreach(DelegatingHandler handler in GetCustomHandlers()) + { + client.AddHandlerToPipeline(handler); + } + + return client; + } + + public virtual TClient CreateClient(AzureSMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient + { + TClient client = CreateClient(profile.Context, endpoint); + + foreach (IClientAction action in _actions.Values) + { + action.Apply(client, profile, endpoint); + } + + return client; + } + + /// + /// + /// + /// + /// + /// + public virtual TClient CreateClient(AzureSMProfile profile, AzureSubscription subscription, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient + { + if (subscription == null) + { + throw new ApplicationException(Resources.InvalidDefaultSubscription); + } + + if (!profile.Accounts.ContainsKey(subscription.Account)) + { + throw new ArgumentException(string.Format("Account with name '{0}' does not exist.", subscription.Account), "accountName"); + } + + if (!profile.Environments.ContainsKey(subscription.Environment)) + { + throw new ArgumentException(string.Format(Resources.EnvironmentNotFound, subscription.Environment)); + } + + AzureContext context = new AzureContext(subscription, + profile.Accounts[subscription.Account], + profile.Environments[subscription.Environment]); + + TClient client = CreateClient(context, endpoint); + + foreach (IClientAction action in _actions.Values) + { + action.Apply(client, profile, endpoint); + } + + return client; + } + + public virtual TClient CreateCustomClient(params object[] parameters) where TClient : ServiceClient + { + List types = new List(); + foreach (object obj in parameters) + { + types.Add(obj.GetType()); + } + + var constructor = typeof(TClient).GetConstructor(types.ToArray()); + + if (constructor == null) + { + throw new InvalidOperationException(string.Format(Resources.InvalidManagementClientType, typeof(TClient).Name)); + } + + TClient client = (TClient)constructor.Invoke(parameters); + + foreach (ProductInfoHeaderValue userAgent in UserAgents) + { + client.UserAgent.Add(userAgent); + } + + return client; + } + + public virtual HttpClient CreateHttpClient(string endpoint, ICredentials credentials) + { + return CreateHttpClient(endpoint, CreateHttpClientHandler(endpoint, credentials)); + } + + public virtual HttpClient CreateHttpClient(string endpoint, HttpMessageHandler effectiveHandler) + { + if (endpoint == null) + { + throw new ArgumentNullException("endpoint"); + } + + Uri serviceAddr = new Uri(endpoint); + HttpClient client = new HttpClient(effectiveHandler) + { + BaseAddress = serviceAddr, + MaxResponseContentBufferSize = 30 * 1024 * 1024 + }; + + client.DefaultRequestHeaders.Accept.Clear(); + + return client; + } + + public static HttpClientHandler CreateHttpClientHandler(string endpoint, ICredentials credentials) + { + if (endpoint == null) + { + throw new ArgumentNullException("endpoint"); + } + + // Set up our own HttpClientHandler and configure it + HttpClientHandler clientHandler = new HttpClientHandler(); + + if (credentials != null) + { + // Set up credentials cache which will handle basic authentication + CredentialCache credentialCache = new CredentialCache(); + + // Get base address without terminating slash + string credentialAddress = new Uri(endpoint).GetLeftPart(UriPartial.Authority).TrimEnd(uriPathSeparator); + + // Add credentials to cache and associate with handler + NetworkCredential networkCredentials = credentials.GetCredential(new Uri(credentialAddress), "Basic"); + credentialCache.Add(new Uri(credentialAddress), "Basic", networkCredentials); + clientHandler.Credentials = credentialCache; + clientHandler.PreAuthenticate = true; + } + + // Our handler is ready + return clientHandler; + } + + public void AddAction(IClientAction action) + { + if (action != null) + { + action.ClientFactory = this; + _actions[action.GetType()] = action; + } + } + + public void RemoveAction(Type actionType) + { + if (_actions.ContainsKey(actionType)) + { + _actions.Remove(actionType); + } + } + + public void AddHandler(T handler) where T: DelegatingHandler, ICloneable + { + if (handler != null) + { + _handlers[handler.GetType()] = handler; + } + } + + public void RemoveHandler(Type handlerType) + { + if (_handlers.Contains(handlerType)) + { + _handlers.Remove(handlerType); + } + } + + /// + /// Adds user agent to UserAgents collection. + /// + /// Product name. + /// Product version. + public void AddUserAgent(string productName, string productVersion) + { + UserAgents.Add(new ProductInfoHeaderValue(productName, productVersion)); + } + + /// + /// Adds user agent to UserAgents collection with empty version. + /// + /// Product name. + public void AddUserAgent(string productName) + { + AddUserAgent(productName, ""); + } + + public HashSet UserAgents { get; set; } + + private DelegatingHandler[] GetCustomHandlers() + { + List newHandlers = new List(); + var enumerator = _handlers.GetEnumerator(); + while (enumerator.MoveNext()) + { + var handler = enumerator.Value; + ICloneable cloneableHandler = handler as ICloneable; + if (cloneableHandler != null) + { + var newHandler = cloneableHandler.Clone(); + DelegatingHandler convertedHandler = newHandler as DelegatingHandler; + if (convertedHandler != null) + { + newHandlers.Add(convertedHandler); + } + } + } + + return newHandlers.ToArray(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Interfaces/IAuthenticationFactory.cs b/src/Common/Commands.Common.Authentication/stuff/Interfaces/IAuthenticationFactory.cs new file mode 100644 index 000000000000..3e4be883589e --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Interfaces/IAuthenticationFactory.cs @@ -0,0 +1,70 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Rest; +using System.Security; + +namespace Microsoft.Azure.Common.Authentication +{ + public interface IAuthenticationFactory + { + /// + /// Returns IAccessToken if authentication succeeds or throws an exception if authentication fails. + /// + /// The azure account object + /// The azure environment object + /// The AD tenant in most cases should be 'common' + /// The AD account password + /// The prompt behavior + /// Token Cache + /// Optional, the AD resource id + /// + IAccessToken Authenticate( + AzureAccount account, + AzureEnvironment environment, + string tenant, + SecureString password, + ShowDialog promptBehavior, + TokenCache tokenCache, + AzureEnvironment.Endpoint resourceId = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId); + + /// + /// Returns IAccessToken if authentication succeeds or throws an exception if authentication fails. + /// + /// The azure account object + /// The azure environment object + /// The AD tenant in most cases should be 'common' + /// The AD account password + /// The prompt behavior + /// Optional, the AD resource id + /// + IAccessToken Authenticate( + AzureAccount account, + AzureEnvironment environment, + string tenant, + SecureString password, + ShowDialog promptBehavior, + AzureEnvironment.Endpoint resourceId = AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId); + + SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context); + SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context, AzureEnvironment.Endpoint targetEndpoint); + + ServiceClientCredentials GetServiceClientCredentials(AzureContext context); + + ServiceClientCredentials GetServiceClientCredentials(AzureContext context, + AzureEnvironment.Endpoint targetEndpoint); + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Interfaces/IClientFactory.cs b/src/Common/Commands.Common.Authentication/stuff/Interfaces/IClientFactory.cs new file mode 100644 index 000000000000..ba526a34998d --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Interfaces/IClientFactory.cs @@ -0,0 +1,66 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Common.Authentication.Models; +using System; +using System.Collections.Generic; +using System.Net; +using System.Net.Http; +using System.Net.Http.Headers; + +namespace Microsoft.Azure.Common.Authentication +{ + public interface IClientFactory + { + TClient CreateArmClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : Microsoft.Rest.ServiceClient; + + TClient CreateCustomArmClient(params object[] parameters) where TClient : Microsoft.Rest.ServiceClient; + + TClient CreateClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient; + + TClient CreateClient(AzureSMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient; + + TClient CreateClient(AzureSMProfile profile, AzureSubscription subscription, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient; + + TClient CreateCustomClient(params object[] parameters) where TClient : ServiceClient; + + HttpClient CreateHttpClient(string endpoint, ICredentials credentials); + + HttpClient CreateHttpClient(string endpoint, HttpMessageHandler effectiveHandler); + + void AddAction(IClientAction action); + + void RemoveAction(Type actionType); + + void AddHandler(T handler) where T: DelegatingHandler, ICloneable; + + void RemoveHandler(Type handlerType); + + /// + /// Adds user agent to UserAgents collection with empty version. + /// + /// Product name. + void AddUserAgent(string productName); + + /// + /// Adds user agent to UserAgents collection. + /// + /// Product name. + /// Product version. + void AddUserAgent(string productName, string productVersion); + + HashSet UserAgents { get; set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Interfaces/IDataStore.cs b/src/Common/Commands.Common.Authentication/stuff/Interfaces/IDataStore.cs new file mode 100644 index 000000000000..102541358aa1 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Interfaces/IDataStore.cs @@ -0,0 +1,67 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.IO; +using System.Security.Cryptography.X509Certificates; +using System.Text; + +namespace Microsoft.Azure.Common.Authentication +{ + public interface IDataStore + { + void WriteFile(string path, string contents); + + void WriteFile(string path, string content, Encoding encoding); + + void WriteFile(string path, byte[] contents); + + string ReadFileAsText(string path); + + Stream ReadFileAsStream(string path); + + byte[] ReadFileAsBytes(string path); + + void RenameFile(string oldPath, string newPath); + + void CopyFile(string oldPath, string newPath); + + bool FileExists(string path); + + void DeleteFile(string path); + + void DeleteDirectory(string dir); + + void EmptyDirectory(string dirPath); + + bool DirectoryExists(string path); + + void CreateDirectory(string path); + + string[] GetDirectories(string sourceDirName); + + string[] GetDirectories(string startDirectory, string filePattern, SearchOption options); + + string[] GetFiles(string sourceDirName); + + string[] GetFiles(string startDirectory, string filePattern, SearchOption options); + + FileAttributes GetFileAttributes(string path); + + X509Certificate2 GetCertificate(string thumbprint); + + void AddCertificate(X509Certificate2 cert); + + void RemoveCertificate(string thumbprint); + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Interfaces/IProfileSerializer.cs b/src/Common/Commands.Common.Authentication/stuff/Interfaces/IProfileSerializer.cs new file mode 100644 index 000000000000..635b66df896a --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Interfaces/IProfileSerializer.cs @@ -0,0 +1,28 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Models; +using System.Collections.Generic; + +namespace Microsoft.Azure.Common.Authentication +{ + public interface IProfileSerializer + { + string Serialize(AzureSMProfile profile); + + bool Deserialize(string contents, AzureSMProfile profile); + + IList DeserializeErrors { get; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureAccount.Methods.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureAccount.Methods.cs new file mode 100644 index 000000000000..c02846d5a93c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureAccount.Methods.cs @@ -0,0 +1,145 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Utilities; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + public partial class AzureAccount + { + public AzureAccount() + { + Properties = new Dictionary(); + } + + public string GetProperty(Property property) + { + return Properties.GetProperty(property); + } + + public string[] GetPropertyAsArray(Property property) + { + return Properties.GetPropertyAsArray(property); + } + + public void SetProperty(Property property, params string[] values) + { + Properties.SetProperty(property, values); + } + + public void SetOrAppendProperty(Property property, params string[] values) + { + Properties.SetOrAppendProperty(property, values); + } + + public bool IsPropertySet(Property property) + { + return Properties.IsPropertySet(property); + } + + public List GetSubscriptions(AzureSMProfile profile) + { + string subscriptions = string.Empty; + List subscriptionsList = new List(); + if (Properties.ContainsKey(Property.Subscriptions)) + { + subscriptions = Properties[Property.Subscriptions]; + } + + foreach (var subscription in subscriptions.Split(new [] {','}, StringSplitOptions.RemoveEmptyEntries)) + { + try + { + Guid subscriptionId = new Guid(subscription); + Debug.Assert(profile.Subscriptions.ContainsKey(subscriptionId)); + subscriptionsList.Add(profile.Subscriptions[subscriptionId]); + } + catch + { + // Skip + } + } + + return subscriptionsList; + } + + public bool HasSubscription(Guid subscriptionId) + { + bool exists = false; + string subscriptions = GetProperty(Property.Subscriptions); + + if (!string.IsNullOrEmpty(subscriptions)) + { + exists = subscriptions.Contains(subscriptionId.ToString()); + } + + return exists; + } + + public void SetSubscriptions(List subscriptions) + { + if (subscriptions == null || subscriptions.Count == 0) + { + if (Properties.ContainsKey(Property.Subscriptions)) + { + Properties.Remove(Property.Subscriptions); + } + } + else + { + string value = string.Join(",", subscriptions.Select(s => s.Id.ToString())); + Properties[Property.Subscriptions] = value; + } + } + + public void RemoveSubscription(Guid id) + { + if (HasSubscription(id)) + { + var remainingSubscriptions = GetPropertyAsArray(Property.Subscriptions).Where(s => s != id.ToString()).ToArray(); + + if (remainingSubscriptions.Any()) + { + Properties[Property.Subscriptions] = string.Join(",", remainingSubscriptions); + } + else + { + Properties.Remove(Property.Subscriptions); + } + } + } + + public override bool Equals(object obj) + { + var anotherAccount = obj as AzureAccount; + if (anotherAccount == null) + { + return false; + } + else + { + return string.Equals(anotherAccount.Id, Id, StringComparison.InvariantCultureIgnoreCase); + } + } + + public override int GetHashCode() + { + return Id.GetHashCode(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureAccount.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureAccount.cs new file mode 100644 index 000000000000..bdd51aa9c9c0 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureAccount.cs @@ -0,0 +1,60 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + [Serializable] + public partial class AzureAccount + { + public string Id { get; set; } + + public AccountType Type { get; set; } + + public Dictionary Properties { get; set; } + + public enum AccountType + { + Certificate, + User, + ServicePrincipal, + AccessToken + } + + public enum Property + { + /// + /// Comma separated list of subscription ids on this account. + /// + Subscriptions, + + /// + /// Comma separated list of tenants on this account. + /// + Tenants, + + /// + /// Access token. + /// + AccessToken, + + /// + /// Thumbprint for associated certificate + /// + CertificateThumbprint + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureContext.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureContext.cs new file mode 100644 index 000000000000..94fe9cca2cc2 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureContext.cs @@ -0,0 +1,90 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Newtonsoft.Json; +using System; +namespace Microsoft.Azure.Common.Authentication.Models +{ + /// + /// Represents current Azure session context. + /// + [Serializable] + public class AzureContext + { + /// + /// Creates new instance of AzureContext. + /// + /// The azure subscription object + /// The azure account object + /// The azure environment object + public AzureContext(AzureSubscription subscription, AzureAccount account, AzureEnvironment environment) + : this(subscription, account, environment, null) + { + + } + + /// + /// Creates new instance of AzureContext. + /// + /// The azure account object + /// The azure environment object + /// The azure tenant object + public AzureContext(AzureAccount account, AzureEnvironment environment, AzureTenant tenant) + : this(null, account, environment, tenant) + { + + } + + /// + /// Creates new instance of AzureContext. + /// + /// The azure subscription object + /// The azure account object + /// The azure environment object + /// The azure tenant object + [JsonConstructor] + public AzureContext(AzureSubscription subscription, AzureAccount account, AzureEnvironment environment, AzureTenant tenant) + { + Subscription = subscription; + Account = account; + Environment = environment; + Tenant = tenant; + } + + /// + /// Gets the azure account. + /// + public AzureAccount Account { get; private set; } + + /// + /// Gets the azure subscription. + /// + public AzureSubscription Subscription { get; private set; } + + /// + /// Gets the azure environment. + /// + public AzureEnvironment Environment { get; private set; } + + /// + /// Gets the azure tenant. + /// + public AzureTenant Tenant { get; private set; } + + /// + /// Gets or sets the token cache contents. + /// + public byte[] TokenCache { get; set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureEnvironment.Methods.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureEnvironment.Methods.cs new file mode 100644 index 000000000000..063e0ecf3369 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureEnvironment.Methods.cs @@ -0,0 +1,422 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Properties; +using Microsoft.Azure.Common.Authentication.Utilities; +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + public partial class AzureEnvironment + { + /// + /// Predefined Microsoft Azure environments + /// + public static Dictionary PublicEnvironments + { + get { return environments; } + } + + private const string storageFormatTemplate = "{{0}}://{{1}}.{0}.{1}/"; + + private string EndpointFormatFor(string service) + { + string suffix = GetEndpointSuffix(AzureEnvironment.Endpoint.StorageEndpointSuffix); + + if (!string.IsNullOrEmpty(suffix)) + { + suffix = string.Format(storageFormatTemplate, service, suffix); + } + + return suffix; + } + + /// + /// The storage service blob endpoint format. + /// + private string StorageBlobEndpointFormat() + { + return EndpointFormatFor("blob"); + } + + /// + /// The storage service queue endpoint format. + /// + private string StorageQueueEndpointFormat() + { + return EndpointFormatFor("queue"); + } + + /// + /// The storage service table endpoint format. + /// + private string StorageTableEndpointFormat() + { + return EndpointFormatFor("table"); + } + + /// + /// The storage service file endpoint format. + /// + private string StorageFileEndpointFormat() + { + return EndpointFormatFor("file"); + } + + private static readonly Dictionary environments = + new Dictionary(StringComparer.InvariantCultureIgnoreCase) + { + { + EnvironmentName.AzureCloud, + new AzureEnvironment + { + Name = EnvironmentName.AzureCloud, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.PublishSettingsFileUrl, AzureEnvironmentConstants.AzurePublishSettingsFileUrl }, + { AzureEnvironment.Endpoint.ServiceManagement, AzureEnvironmentConstants.AzureServiceEndpoint }, + { AzureEnvironment.Endpoint.ResourceManager, AzureEnvironmentConstants.AzureResourceManagerEndpoint }, + { AzureEnvironment.Endpoint.ManagementPortalUrl, AzureEnvironmentConstants.AzureManagementPortalUrl }, + { AzureEnvironment.Endpoint.ActiveDirectory, AzureEnvironmentConstants.AzureActiveDirectoryEndpoint }, + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, AzureEnvironmentConstants.AzureServiceEndpoint }, + { AzureEnvironment.Endpoint.StorageEndpointSuffix, AzureEnvironmentConstants.AzureStorageEndpointSuffix }, + { AzureEnvironment.Endpoint.Gallery, AzureEnvironmentConstants.GalleryEndpoint }, + { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, AzureEnvironmentConstants.AzureSqlDatabaseDnsSuffix }, + { AzureEnvironment.Endpoint.Graph, AzureEnvironmentConstants.AzureGraphEndpoint }, + { AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, AzureEnvironmentConstants.AzureTrafficManagerDnsSuffix }, + { AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, AzureEnvironmentConstants.AzureKeyVaultDnsSuffix}, + { AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, AzureEnvironmentConstants.AzureKeyVaultServiceEndpointResourceId}, + { AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, AzureEnvironmentConstants.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix}, + { AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, AzureEnvironmentConstants.AzureDataLakeStoreFileSystemEndpointSuffix}, + { AzureEnvironment.Endpoint.GraphEndpointResourceId, AzureEnvironmentConstants.AzureGraphEndpoint} + } + } + }, + { + EnvironmentName.AzureChinaCloud, + new AzureEnvironment + { + Name = EnvironmentName.AzureChinaCloud, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.PublishSettingsFileUrl, AzureEnvironmentConstants.ChinaPublishSettingsFileUrl }, + { AzureEnvironment.Endpoint.ServiceManagement, AzureEnvironmentConstants.ChinaServiceEndpoint }, + { AzureEnvironment.Endpoint.ResourceManager, AzureEnvironmentConstants.ChinaResourceManagerEndpoint }, + { AzureEnvironment.Endpoint.ManagementPortalUrl, AzureEnvironmentConstants.ChinaManagementPortalUrl }, + { AzureEnvironment.Endpoint.ActiveDirectory, AzureEnvironmentConstants.ChinaActiveDirectoryEndpoint }, + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, AzureEnvironmentConstants.ChinaServiceEndpoint }, + { AzureEnvironment.Endpoint.StorageEndpointSuffix, AzureEnvironmentConstants.ChinaStorageEndpointSuffix }, + { AzureEnvironment.Endpoint.Gallery, AzureEnvironmentConstants.ChinaGalleryEndpoint }, + { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, AzureEnvironmentConstants.ChinaSqlDatabaseDnsSuffix }, + { AzureEnvironment.Endpoint.Graph, AzureEnvironmentConstants.ChinaGraphEndpoint }, + { AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, AzureEnvironmentConstants.ChinaTrafficManagerDnsSuffix }, + { AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, AzureEnvironmentConstants.ChinaKeyVaultDnsSuffix }, + { AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, AzureEnvironmentConstants.ChinaKeyVaultServiceEndpointResourceId }, + { AzureEnvironment.Endpoint.GraphEndpointResourceId, AzureEnvironmentConstants.ChinaGraphEndpoint} + // TODO: DataLakeAnalytics and ADL do not have a China endpoint yet. Once they do, add them here. + } + } + }, + { + EnvironmentName.AzureUSGovernment, + new AzureEnvironment + { + Name = EnvironmentName.AzureUSGovernment, + Endpoints = new Dictionary + { + { AzureEnvironment.Endpoint.PublishSettingsFileUrl, AzureEnvironmentConstants.USGovernmentPublishSettingsFileUrl }, + { AzureEnvironment.Endpoint.ServiceManagement, AzureEnvironmentConstants.USGovernmentServiceEndpoint }, + { AzureEnvironment.Endpoint.ResourceManager, AzureEnvironmentConstants.USGovernmentResourceManagerEndpoint }, + { AzureEnvironment.Endpoint.ManagementPortalUrl, AzureEnvironmentConstants.USGovernmentManagementPortalUrl }, + { AzureEnvironment.Endpoint.ActiveDirectory, AzureEnvironmentConstants.USGovernmentActiveDirectoryEndpoint }, + { AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, AzureEnvironmentConstants.USGovernmentServiceEndpoint }, + { AzureEnvironment.Endpoint.StorageEndpointSuffix, AzureEnvironmentConstants.USGovernmentStorageEndpointSuffix }, + { AzureEnvironment.Endpoint.Gallery, AzureEnvironmentConstants.USGovernmentGalleryEndpoint }, + { AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, AzureEnvironmentConstants.USGovernmentSqlDatabaseDnsSuffix }, + { AzureEnvironment.Endpoint.Graph, AzureEnvironmentConstants.USGovernmentGraphEndpoint }, + { AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, null }, + { AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, AzureEnvironmentConstants.USGovernmentKeyVaultDnsSuffix}, + { AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, AzureEnvironmentConstants.USGovernmentKeyVaultServiceEndpointResourceId}, + { AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, null}, + { AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, null}, + {AzureEnvironment.Endpoint.GraphEndpointResourceId, AzureEnvironmentConstants.USGovernmentGraphEndpoint} + } + } + } + }; + + public Uri GetEndpointAsUri(AzureEnvironment.Endpoint endpoint) + { + if (Endpoints.ContainsKey(endpoint)) + { + return new Uri(Endpoints[endpoint]); + } + + return null; + } + + public string GetEndpoint(AzureEnvironment.Endpoint endpoint) + { + if (Endpoints.ContainsKey(endpoint)) + { + return Endpoints[endpoint]; + } + + return null; + } + + public AzureEnvironment.Endpoint GetTokenAudience(AzureEnvironment.Endpoint targetEndpoint) + { + return targetEndpoint == AzureEnvironment.Endpoint.Graph + ? AzureEnvironment.Endpoint.GraphEndpointResourceId + : AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId; + } + + + + public bool IsEndpointSet(AzureEnvironment.Endpoint endpoint) + { + return Endpoints.IsPropertySet(endpoint); + } + + public bool IsEndpointSetToValue(AzureEnvironment.Endpoint endpoint, string url) + { + if (url == null && !Endpoints.IsPropertySet(endpoint)) + { + return true; + } + if (url != null && Endpoints.IsPropertySet(endpoint)) + { + return GetEndpoint(endpoint) + .Trim(new[] { '/' }) + .Equals(url.Trim(new[] { '/' }), StringComparison.InvariantCultureIgnoreCase); + } + return false; + } + + public string GetEndpointSuffix(AzureEnvironment.Endpoint endpointSuffix) + { + if (Endpoints.ContainsKey(endpointSuffix)) + { + return Endpoints[endpointSuffix]; + } + + return null; + } + + /// + /// Gets the endpoint for storage blob. + /// + /// The account name + /// Use Https when creating the URI. Defaults to true. + /// The fully qualified uri to the blob service + public Uri GetStorageBlobEndpoint(string accountName, bool useHttps = true) + { + return new Uri(string.Format(StorageBlobEndpointFormat(), useHttps ? "https" : "http", accountName)); + } + + /// + /// Gets the endpoint for storage queue. + /// + /// The account name + /// Use Https when creating the URI. Defaults to true. + /// The fully qualified uri to the queue service + public Uri GetStorageQueueEndpoint(string accountName, bool useHttps = true) + { + return new Uri(string.Format(StorageQueueEndpointFormat(), useHttps ? "https" : "http", accountName)); + } + + /// + /// Gets the endpoint for storage table. + /// + /// The account name + /// Use Https when creating the URI. Defaults to true. + /// The fully qualified uri to the table service + public Uri GetStorageTableEndpoint(string accountName, bool useHttps = true) + { + return new Uri(string.Format(StorageTableEndpointFormat(), useHttps ? "https" : "http", accountName)); + } + + /// + /// Gets the endpoint for storage file. + /// + /// The account name + /// Use Https when creating the URI. Defaults to true. + /// The fully qualified uri to the file service + public Uri GetStorageFileEndpoint(string accountName, bool useHttps = true) + { + return new Uri(string.Format(StorageFileEndpointFormat(), useHttps ? "https" : "http", accountName)); + } + + /// + /// Gets the management portal URI with a particular realm suffix if supplied + /// + /// Realm for user's account + /// Url to management portal. + public string GetManagementPortalUrlWithRealm(string realm = null) + { + if (realm != null) + { + realm = string.Format(Resources.PublishSettingsFileRealmFormat, realm); + } + else + { + realm = string.Empty; + } + return GetEndpointAsUri(Endpoint.ManagementPortalUrl) + realm; + } + + /// + /// Get the publish settings file download url with a realm suffix if needed. + /// + /// Realm for user's account + /// Url to publish settings file + public string GetPublishSettingsFileUrlWithRealm(string realm = null) + { + if (realm != null) + { + realm = string.Format(Resources.PublishSettingsFileRealmFormat, realm); + } + else + { + realm = string.Empty; + } + return GetEndpointAsUri(Endpoint.PublishSettingsFileUrl) + realm; + } + + public enum Endpoint + { + ActiveDirectoryServiceEndpointResourceId, + + AdTenant, + + Gallery, + + ManagementPortalUrl, + + ServiceManagement, + + PublishSettingsFileUrl, + + ResourceManager, + + SqlDatabaseDnsSuffix, + + StorageEndpointSuffix, + + ActiveDirectory, + + Graph, + + TrafficManagerDnsSuffix, + + AzureKeyVaultDnsSuffix, + + AzureKeyVaultServiceEndpointResourceId, + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, + + AzureDataLakeStoreFileSystemEndpointSuffix, + + GraphEndpointResourceId + } + } + + public static class EnvironmentName + { + public const string AzureCloud = "AzureCloud"; + + public const string AzureChinaCloud = "AzureChinaCloud"; + + public const string AzureUSGovernment = "AzureUSGovernment"; + } + + public static class AzureEnvironmentConstants + { + public const string AzureServiceEndpoint = "https://management.core.windows.net/"; + + public const string ChinaServiceEndpoint = "https://management.core.chinacloudapi.cn/"; + + public const string USGovernmentServiceEndpoint = "https://management.core.usgovcloudapi.net/"; + + public const string AzureResourceManagerEndpoint = "https://management.azure.com/"; + + public const string ChinaResourceManagerEndpoint = "https://management.chinacloudapi.cn/"; + + public const string USGovernmentResourceManagerEndpoint = "https://management.usgovcloudapi.net/"; + + public const string GalleryEndpoint = "https://gallery.azure.com/"; + + public const string ChinaGalleryEndpoint = "https://gallery.chinacloudapi.cn/"; + + public const string USGovernmentGalleryEndpoint = "https://gallery.usgovcloudapi.net/"; + + public const string AzurePublishSettingsFileUrl = "http://go.microsoft.com/fwlink/?LinkID=301775"; + + public const string ChinaPublishSettingsFileUrl = "http://go.microsoft.com/fwlink/?LinkID=301776"; + + public const string USGovernmentPublishSettingsFileUrl = "https://manage.windowsazure.us/publishsettings/index"; + + public const string AzureManagementPortalUrl = "http://go.microsoft.com/fwlink/?LinkId=254433"; + + public const string ChinaManagementPortalUrl = "http://go.microsoft.com/fwlink/?LinkId=301902"; + + public const string USGovernmentManagementPortalUrl = "https://manage.windowsazure.us"; + + public const string AzureStorageEndpointSuffix = "core.windows.net"; + + public const string ChinaStorageEndpointSuffix = "core.chinacloudapi.cn"; + + public const string USGovernmentStorageEndpointSuffix = "core.usgovcloudapi.net"; + + public const string AzureSqlDatabaseDnsSuffix = ".database.windows.net"; + + public const string ChinaSqlDatabaseDnsSuffix = ".database.chinacloudapi.cn"; + + public const string USGovernmentSqlDatabaseDnsSuffix = ".database.usgovcloudapi.net"; + + public const string AzureActiveDirectoryEndpoint = "https://login.microsoftonline.com/"; + + public const string ChinaActiveDirectoryEndpoint = "https://login.chinacloudapi.cn/"; + + public const string USGovernmentActiveDirectoryEndpoint = "https://login.microsoftonline.com/"; + + public const string AzureGraphEndpoint = "https://graph.windows.net/"; + + public const string ChinaGraphEndpoint = "https://graph.chinacloudapi.cn/"; + + public const string USGovernmentGraphEndpoint = "https://graph.windows.net/"; + + public const string AzureTrafficManagerDnsSuffix = "trafficmanager.net"; + + public const string ChinaTrafficManagerDnsSuffix = "trafficmanager.cn"; + + public const string AzureKeyVaultDnsSuffix = "vault.azure.net"; + + public const string ChinaKeyVaultDnsSuffix = "vault.azure.cn"; + + public const string USGovernmentKeyVaultDnsSuffix = "vault.usgovcloudapi.net"; + + public const string AzureKeyVaultServiceEndpointResourceId = "https://vault.azure.net"; + + public const string ChinaKeyVaultServiceEndpointResourceId = "https://vault.azure.cn"; + + public const string USGovernmentKeyVaultServiceEndpointResourceId = "https://vault.usgovcloudapi.net"; + + public const string AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix = "azuredatalakeanalytics.net"; + + public const string AzureDataLakeStoreFileSystemEndpointSuffix = "azuredatalakestore.net"; + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureEnvironment.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureEnvironment.cs new file mode 100644 index 000000000000..89d80e7569cb --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureEnvironment.cs @@ -0,0 +1,34 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + [Serializable] + public partial class AzureEnvironment + { + public AzureEnvironment() + { + Endpoints = new Dictionary(); + } + + public string Name { get; set; } + + public bool OnPremise { get; set; } + + public Dictionary Endpoints { get; set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureRMProfile.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureRMProfile.cs new file mode 100644 index 000000000000..68085d47d93d --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureRMProfile.cs @@ -0,0 +1,147 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Diagnostics; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + /// + /// Represents Azure Resource Manager profile structure with default context, environments and token cache. + /// + [Serializable] + public sealed class AzureRMProfile : IAzureProfile + { + /// + /// Gets or sets Azure environments. + /// + public Dictionary Environments { get; set; } + + /// + /// Gets or sets the default azure context object. + /// + public AzureContext Context { get; set; } + + /// + /// Gets the path of the profile file. + /// + [JsonIgnore] + public string ProfilePath { get; private set; } + + private void Load(string path) + { + this.ProfilePath = path; + + if (!AzureSession.DataStore.DirectoryExists(AzureSession.ProfileDirectory)) + { + AzureSession.DataStore.CreateDirectory(AzureSession.ProfileDirectory); + } + + if (AzureSession.DataStore.FileExists(ProfilePath)) + { + string contents = AzureSession.DataStore.ReadFileAsText(ProfilePath); + AzureRMProfile profile = JsonConvert.DeserializeObject(contents); + Debug.Assert(profile != null); + this.Context = profile.Context; + this.Environments = profile.Environments; + } + } + + /// + /// Creates new instance of AzureRMProfile. + /// + public AzureRMProfile() + { + Environments = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + + // Adding predefined environments + foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) + { + Environments[env.Name] = env; + } + } + + /// + /// Initializes a new instance of AzureRMProfile and loads its content from specified path. + /// + /// The location of profile file on disk. + public AzureRMProfile(string path) : this() + { + Load(path); + } + + /// + /// Writes profile to the disk it was opened from disk. + /// + public void Save() + { + if (!string.IsNullOrEmpty(ProfilePath)) + { + Save(ProfilePath); + } + } + + /// + /// Writes profile to a specified path. + /// + /// File path on disk to save profile to + public void Save(string path) + { + if (string.IsNullOrEmpty(path)) + { + return; + } + + // Removing predefined environments + foreach (string env in AzureEnvironment.PublicEnvironments.Keys) + { + Environments.Remove(env); + } + + try + { + string contents = ToString(); + string diskContents = string.Empty; + if (AzureSession.DataStore.FileExists(path)) + { + diskContents = AzureSession.DataStore.ReadFileAsText(path); + } + + if (diskContents != contents) + { + AzureSession.DataStore.WriteFile(path, contents); + } + } + finally + { + // Adding back predefined environments + foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) + { + Environments[env.Name] = env; + } + } + } + + /// + /// Serializes the current profile and return its contents. + /// + /// The current string. + public override string ToString() + { + return JsonConvert.SerializeObject(this, Formatting.Indented); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureSMProfile.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureSMProfile.cs new file mode 100644 index 000000000000..e9c1de03904f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureSMProfile.cs @@ -0,0 +1,240 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; +using Microsoft.Azure.Common.Authentication.Properties; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + /// + /// Represents Azure profile structure with multiple environments, subscriptions, and accounts. + /// + [Serializable] + public sealed class AzureSMProfile : IAzureProfile + { + /// + /// Gets Azure Accounts + /// + public Dictionary Accounts { get; set; } + + /// + /// Gets Azure Subscriptions + /// + public Dictionary Subscriptions { get; set; } + + /// + /// Gets or sets current Azure Subscription + /// + public AzureSubscription DefaultSubscription + { + get + { + return Subscriptions.Values.FirstOrDefault( + s => s.Properties.ContainsKey(AzureSubscription.Property.Default)); + } + + set + { + if (value == null) + { + foreach (var subscription in Subscriptions.Values) + { + subscription.SetProperty(AzureSubscription.Property.Default, null); + } + } + else if (Subscriptions.ContainsKey(value.Id)) + { + foreach (var subscription in Subscriptions.Values) + { + subscription.SetProperty(AzureSubscription.Property.Default, null); + } + + Subscriptions[value.Id].Properties[AzureSubscription.Property.Default] = "True"; + value.Properties[AzureSubscription.Property.Default] = "True"; + } + } + } + + /// + /// Gets Azure Environments + /// + public Dictionary Environments { get; set; } + + /// + /// Gets the default azure context object. + /// + [JsonIgnore] + public AzureContext Context + { + get + { + var context = new AzureContext(null, null, null, null); + + if (DefaultSubscription != null) + { + AzureAccount account = null; + AzureEnvironment environment = AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud]; + if (DefaultSubscription.Account != null && + Accounts.ContainsKey(DefaultSubscription.Account)) + { + account = Accounts[DefaultSubscription.Account]; + } + else + { + TracingAdapter.Information(Resources.NoAccountInContext, DefaultSubscription.Account, DefaultSubscription.Id); + } + + if (DefaultSubscription.Environment != null && + Environments.ContainsKey(DefaultSubscription.Environment)) + { + environment = Environments[DefaultSubscription.Environment]; + } + else + { + TracingAdapter.Information(Resources.NoEnvironmentInContext, DefaultSubscription.Environment, DefaultSubscription.Id); + } + + context = new AzureContext(DefaultSubscription, account, environment); + } + + return context; + } + } + + /// + /// Gets errors from loading the profile. + /// + public List ProfileLoadErrors { get; private set; } + + /// + /// Location of the profile file. + /// + public string ProfilePath { get; private set; } + + /// + /// Initializes a new instance of AzureSMProfile + /// + public AzureSMProfile() + { + Environments = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + Subscriptions = new Dictionary(); + Accounts = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + + // Adding predefined environments + foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) + { + Environments[env.Name] = env; + } + } + + /// + /// Initializes a new instance of AzureSMProfile and loads its content from specified path. + /// Any errors generated in the process are stored in ProfileLoadErrors collection. + /// + /// Location of profile file on disk. + public AzureSMProfile(string path) : this() + { + ProfilePath = path; + ProfileLoadErrors = new List(); + + if (!AzureSession.DataStore.DirectoryExists(AzureSession.ProfileDirectory)) + { + AzureSession.DataStore.CreateDirectory(AzureSession.ProfileDirectory); + } + + if (AzureSession.DataStore.FileExists(ProfilePath)) + { + string contents = AzureSession.DataStore.ReadFileAsText(ProfilePath); + + IProfileSerializer serializer; + + if (CloudException.IsXml(contents)) + { + serializer = new XmlProfileSerializer(); + if (!serializer.Deserialize(contents, this)) + { + ProfileLoadErrors.AddRange(serializer.DeserializeErrors); + } + } + else if (CloudException.IsJson(contents)) + { + serializer = new JsonProfileSerializer(); + if (!serializer.Deserialize(contents, this)) + { + ProfileLoadErrors.AddRange(serializer.DeserializeErrors); + } + } + } + } + + /// + /// Writes profile to a ProfilePath + /// + public void Save() + { + Save(ProfilePath); + } + + /// + /// Writes profile to a specified path. + /// + /// File path on disk to save profile to + public void Save(string path) + { + if (string.IsNullOrEmpty(path)) + { + return; + } + + // Removing predefined environments + foreach (string env in AzureEnvironment.PublicEnvironments.Keys) + { + Environments.Remove(env); + } + + try + { + string contents = ToString(); + string diskContents = string.Empty; + if (AzureSession.DataStore.FileExists(path)) + { + diskContents = AzureSession.DataStore.ReadFileAsText(path); + } + + if (diskContents != contents) + { + AzureSession.DataStore.WriteFile(path, contents); + } + } + finally + { + // Adding back predefined environments + foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) + { + Environments[env.Name] = env; + } + } + } + + public override string ToString() + { + JsonProfileSerializer jsonSerializer = new JsonProfileSerializer(); + return jsonSerializer.Serialize(this); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureSubscription.Methods.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureSubscription.Methods.cs new file mode 100644 index 000000000000..7c7a92b38cae --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureSubscription.Methods.cs @@ -0,0 +1,70 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Utilities; +using System.Collections.Generic; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + public partial class AzureSubscription + { + public AzureSubscription() + { + Properties = new Dictionary(); + } + + public override int GetHashCode() + { + return Id.GetHashCode(); + } + + public string GetProperty(Property property) + { + return Properties.GetProperty(property); + } + + public string[] GetPropertyAsArray(Property property) + { + return Properties.GetPropertyAsArray(property); + } + + public void SetProperty(Property property, params string[] values) + { + Properties.SetProperty(property, values); + } + + public void SetOrAppendProperty(Property property, params string[] values) + { + Properties.SetOrAppendProperty(property, values); + } + + public bool IsPropertySet(Property property) + { + return Properties.IsPropertySet(property); + } + + public override bool Equals(object obj) + { + var anotherSubscription = obj as AzureSubscription; + if (anotherSubscription == null) + { + return false; + } + else + { + return anotherSubscription.Id == Id; + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureSubscription.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureSubscription.cs new file mode 100644 index 000000000000..8cd7aef66de7 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureSubscription.cs @@ -0,0 +1,55 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + [Serializable] + public partial class AzureSubscription + { + public Guid Id { get; set; } + + public string Name { get; set; } + + public string Environment { get; set; } + + public string Account { get; set; } + + public string State { get; set; } + + public Dictionary Properties { get; set; } + + public enum Property + { + /// + /// Comma separated registered resource providers, i.e.: websites,compute,hdinsight + /// + RegisteredResourceProviders, + + /// + /// Associated tenants + /// + Tenants, + + /// + /// If this property existed on the subscription indicates that it's default one. + /// + Default, + + StorageAccount + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/AzureTenant.cs b/src/Common/Commands.Common.Authentication/stuff/Models/AzureTenant.cs new file mode 100644 index 000000000000..7a2a4f9403c9 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/AzureTenant.cs @@ -0,0 +1,35 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + /// + /// Represents an AD tenant. + /// + [Serializable] + public class AzureTenant + { + /// + /// Gets or sets the tenant id. + /// + public Guid Id { get; set; } + + /// + /// Gets or sets the tenant domain. + /// + public string Domain { get; set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/DiskDataStore.cs b/src/Common/Commands.Common.Authentication/stuff/Models/DiskDataStore.cs new file mode 100644 index 000000000000..1218905d7dba --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/DiskDataStore.cs @@ -0,0 +1,180 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Properties; +using System; +using System.IO; +using System.Security.Cryptography.X509Certificates; +using System.Text; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + public class DiskDataStore : IDataStore + { + public void WriteFile(string path, string contents) + { + File.WriteAllText(path, contents); + } + + public void WriteFile(string path, string contents, Encoding encoding) + { + File.WriteAllText(path, contents, encoding); + } + + public void WriteFile(string path, byte[] contents) + { + File.WriteAllBytes(path, contents); + } + + public string ReadFileAsText(string path) + { + return File.ReadAllText(path); + } + + public byte[] ReadFileAsBytes(string path) + { + return File.ReadAllBytes(path); + } + + public Stream ReadFileAsStream(string path) + { + return File.Open(path, FileMode.Open, FileAccess.Read); + } + + public void RenameFile(string oldPath, string newPath) + { + File.Move(oldPath, newPath); + } + + public void CopyFile(string oldPath, string newPath) + { + File.Copy(oldPath, newPath, true); + } + + public bool FileExists(string path) + { + return File.Exists(path); + } + + public void DeleteFile(string path) + { + File.Delete(path); + } + + public void DeleteDirectory(string dir) + { + Directory.Delete(dir, true); + } + + public void EmptyDirectory(string dirPath) + { + foreach (var filePath in Directory.GetFiles(dirPath)) + { + File.Delete(filePath); + } + } + + public string[] GetFiles(string sourceDirName) + { + return Directory.GetFiles(sourceDirName); + } + + public string[] GetFiles(string startDirectory, string filePattern, SearchOption options) + { + return Directory.GetFiles(startDirectory, filePattern, options); + } + + public FileAttributes GetFileAttributes(string path) + { + return File.GetAttributes(path); + } + + public X509Certificate2 GetCertificate(string thumbprint) + { + if (thumbprint == null) + { + return null; + } + else + { + Validate.ValidateStringIsNullOrEmpty(thumbprint, "certificate thumbprint"); + X509Certificate2Collection certificates; + if (TryFindCertificatesInStore(thumbprint, StoreLocation.CurrentUser, out certificates) || + TryFindCertificatesInStore(thumbprint, StoreLocation.LocalMachine, out certificates)) + { + return certificates[0]; + } + else + { + throw new ArgumentException(string.Format(Resources.CertificateNotFoundInStore, thumbprint)); + } + } + } + + private static bool TryFindCertificatesInStore(string thumbprint, + StoreLocation location, out X509Certificate2Collection certificates) + { + X509Store store = new X509Store(StoreName.My, location); + store.Open(OpenFlags.ReadOnly); + certificates = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); + store.Close(); + + return certificates.Count > 0; + } + + public void AddCertificate(X509Certificate2 certificate) + { + Validate.ValidateNullArgument(certificate, Resources.InvalidCertificate); + X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); + store.Open(OpenFlags.ReadWrite); + store.Add(certificate); + store.Close(); + } + + public void RemoveCertificate(string thumbprint) + { + if (thumbprint != null) + { + var certificate = GetCertificate(thumbprint); + if (certificate != null) + { + X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); + store.Open(OpenFlags.ReadWrite); + store.Remove(certificate); + store.Close(); + } + } + } + + public bool DirectoryExists(string path) + { + return Directory.Exists(path); + } + + public void CreateDirectory(string path) + { + Directory.CreateDirectory(path); + } + + public string[] GetDirectories(string sourceDirName) + { + return Directory.GetDirectories(sourceDirName); + } + + public string[] GetDirectories(string startDirectory, string filePattern, SearchOption options) + { + return Directory.GetDirectories(startDirectory, filePattern, options); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/IAzureProfile.cs b/src/Common/Commands.Common.Authentication/stuff/Models/IAzureProfile.cs new file mode 100644 index 000000000000..5c6053cf5b35 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/IAzureProfile.cs @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +namespace Microsoft.Azure.Common.Authentication.Models +{ + /// + /// Interface for Azure supported profiles. + /// + public interface IAzureProfile + { + /// + /// Gets the default azure context object. + /// + AzureContext Context { get; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/IClientAction.cs b/src/Common/Commands.Common.Authentication/stuff/Models/IClientAction.cs new file mode 100644 index 000000000000..5bae27e4aa6f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/IClientAction.cs @@ -0,0 +1,27 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Hyak.Common; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + public interface IClientAction + { + IClientFactory ClientFactory { get; set; } + + void Apply(TClient client, AzureSMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : ServiceClient; + + void ApplyArm(TClient client, AzureRMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : Microsoft.Rest.ServiceClient; + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/JsonProfileSerializer.cs b/src/Common/Commands.Common.Authentication/stuff/Models/JsonProfileSerializer.cs new file mode 100644 index 000000000000..f5aab4c8250a --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/JsonProfileSerializer.cs @@ -0,0 +1,91 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + public class JsonProfileSerializer : IProfileSerializer + { + public string Serialize(AzureSMProfile profile) + { + return JsonConvert.SerializeObject(new + { + Environments = profile.Environments.Values.ToList(), + Subscriptions = profile.Subscriptions.Values.ToList(), + Accounts = profile.Accounts.Values.ToList() + }, Formatting.Indented); + } + + public bool Deserialize(string contents, AzureSMProfile profile) + { + DeserializeErrors = new List(); + + try + { + var jsonProfile = JObject.Parse(contents); + + foreach (var env in jsonProfile["Environments"]) + { + try + { + profile.Environments[(string) env["Name"]] = + JsonConvert.DeserializeObject(env.ToString()); + } + catch (Exception ex) + { + DeserializeErrors.Add(ex.Message); + } + } + + foreach (var subscription in jsonProfile["Subscriptions"]) + { + try + { + profile.Subscriptions[new Guid((string) subscription["Id"])] = + JsonConvert.DeserializeObject(subscription.ToString()); + } + catch (Exception ex) + { + DeserializeErrors.Add(ex.Message); + } + } + + foreach (var account in jsonProfile["Accounts"]) + { + try + { + profile.Accounts[(string) account["Id"]] = + JsonConvert.DeserializeObject(account.ToString()); + } + catch (Exception ex) + { + DeserializeErrors.Add(ex.Message); + } + } + } + catch (Exception ex) + { + DeserializeErrors.Add(ex.Message); + } + return DeserializeErrors.Count == 0; + } + + public IList DeserializeErrors { get; private set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/MemoryDataStore.cs b/src/Common/Commands.Common.Authentication/stuff/Models/MemoryDataStore.cs new file mode 100644 index 000000000000..43dd736fba9c --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/MemoryDataStore.cs @@ -0,0 +1,317 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Text.RegularExpressions; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + public class MemoryDataStore : IDataStore + { + private Dictionary virtualStore = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + private Dictionary certStore = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + private const string FolderKey = "Folder"; + + public Dictionary VirtualStore + { + get { return virtualStore; } + set { virtualStore = value; } + } + + public void WriteFile(string path, string contents) + { + VirtualStore[path] = contents; + } + + public void WriteFile(string path, string contents, Encoding encoding) + { + WriteFile(path, contents); + } + + public void WriteFile(string path, byte[] contents) + { + VirtualStore[path] = Encoding.Default.GetString(contents); + } + + public string ReadFileAsText(string path) + { + if (VirtualStore.ContainsKey(path)) + { + return VirtualStore[path]; + } + else + { + throw new IOException("File not found: " + path); + } + } + + public Stream ReadFileAsStream(string path) + { + if (VirtualStore.ContainsKey(path)) + { + MemoryStream stream = new MemoryStream(); + StreamWriter writer = new StreamWriter(stream); + writer.Write(VirtualStore[path]); + writer.Flush(); + stream.Position = 0; + return stream; + } + else + { + throw new IOException("File not found: " + path); + } + } + + public byte[] ReadFileAsBytes(string path) + { + if (VirtualStore.ContainsKey(path)) + { + return Encoding.Default.GetBytes(VirtualStore[path]); + } + else + { + throw new IOException("File not found: " + path); + } + } + + public void RenameFile(string oldPath, string newPath) + { + if (VirtualStore.ContainsKey(oldPath)) + { + VirtualStore[newPath] = VirtualStore[oldPath]; + VirtualStore.Remove(oldPath); + } + else + { + throw new IOException("File not found: " + oldPath); + } + } + + public void CopyFile(string oldPath, string newPath) + { + if (VirtualStore.ContainsKey(oldPath)) + { + VirtualStore[newPath] = VirtualStore[oldPath]; + } + else + { + throw new IOException("File not found: " + oldPath); + } + } + + public bool FileExists(string path) + { + return VirtualStore.ContainsKey(path); + } + + public void DeleteFile(string path) + { + if (VirtualStore.ContainsKey(path)) + { + VirtualStore.Remove(path); + } + else + { + throw new IOException("File not found: " + path); + } + } + + public void DeleteDirectory(string dir) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(dir)) + { + VirtualStore.Remove(key); + } + } + } + + public void EmptyDirectory(string dirPath) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(dirPath)) + { + VirtualStore.Remove(key); + } + } + } + + public bool DirectoryExists(string path) + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(path)) + { + return true; + } + } + return false; + } + + public void CreateDirectory(string path) + { + VirtualStore[path] = FolderKey; + } + + public string[] GetDirectories(string sourceDirName) + { + HashSet dirs = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(sourceDirName)) + { + var directoryName = Path.GetDirectoryName(key); + if (!dirs.Contains(directoryName)) + { + dirs.Add(directoryName); + } + } + } + return dirs.ToArray(); + } + + public string[] GetDirectories(string startDirectory, string filePattern, SearchOption options) + { + HashSet dirs = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(startDirectory) && Regex.IsMatch(key, WildcardToRegex(filePattern), RegexOptions.IgnoreCase)) + { + var directoryName = Path.GetDirectoryName(key); + if (!dirs.Contains(directoryName)) + { + dirs.Add(directoryName); + } + } + } + return dirs.ToArray(); + } + + public string[] GetFiles(string sourceDirName) + { + HashSet files = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(sourceDirName) && VirtualStore[key] != FolderKey) + { + if (!files.Contains(key)) + { + files.Add(key); + } + } + } + return files.ToArray(); + } + + public string[] GetFiles(string startDirectory, string filePattern, SearchOption options) + { + HashSet files = new HashSet(); + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(startDirectory) && VirtualStore[key] != FolderKey && Regex.IsMatch(key, WildcardToRegex(filePattern), RegexOptions.IgnoreCase)) + { + if (!files.Contains(key)) + { + files.Add(key); + } + } + } + return files.ToArray(); + } + + public FileAttributes GetFileAttributes(string path) + { + if (VirtualStore[path] == FolderKey) + { + return FileAttributes.Directory; + } + if (VirtualStore.ContainsKey(path)) + { + return FileAttributes.Normal; + } + else + { + foreach (var key in VirtualStore.Keys.ToArray()) + { + if (key.StartsWith(path)) + { + return FileAttributes.Directory; + } + } + throw new IOException("File not found: " + path); + } + } + + public X509Certificate2 GetCertificate(string thumbprint) + { + if (thumbprint != null && certStore.ContainsKey(thumbprint)) + { + return certStore[thumbprint]; + } + else + { + return new X509Certificate2(); + } + } + + public void AddCertificate(X509Certificate2 cert) + { + if (cert != null && cert.Thumbprint != null) + { + certStore[cert.Thumbprint] = cert; + } + } + + public void RemoveCertificate(string thumbprint) + { + if (thumbprint != null && certStore.ContainsKey(thumbprint)) + { + certStore.Remove(thumbprint); + } + } + + /// + /// Converts unix asterisk based file pattern to regex + /// + /// Asterisk based pattern + /// Regeular expression of null is empty + private static string WildcardToRegex(string wildcard) + { + if (wildcard == null || wildcard == "") return wildcard; + + StringBuilder sb = new StringBuilder(); + + char[] chars = wildcard.ToCharArray(); + for (int i = 0; i < chars.Length; ++i) + { + if (chars[i] == '*') + sb.Append(".*"); + else if (chars[i] == '?') + sb.Append("."); + else if ("+()^$.{}|\\".IndexOf(chars[i]) != -1) + sb.Append('\\').Append(chars[i]); // prefix all metacharacters with backslash + else + sb.Append(chars[i]); + } + return sb.ToString().ToLowerInvariant(); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Models/XmlProfileSerializer.cs b/src/Common/Commands.Common.Authentication/stuff/Models/XmlProfileSerializer.cs new file mode 100644 index 000000000000..543169ad53c2 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Models/XmlProfileSerializer.cs @@ -0,0 +1,95 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; + +namespace Microsoft.Azure.Common.Authentication.Models +{ + public class XmlProfileSerializer : IProfileSerializer + { + public string Serialize(AzureSMProfile obj) + { + // We do not use the serialize for xml serializer anymore and rely solely on the JSON serializer. + throw new NotImplementedException(); + } + + public bool Deserialize(string contents, AzureSMProfile profile) + { + ProfileData data; + Debug.Assert(profile != null); + + DeserializeErrors = new List(); + + DataContractSerializer serializer = new DataContractSerializer(typeof(ProfileData)); + using (MemoryStream s = new MemoryStream(Encoding.UTF8.GetBytes(contents ?? ""))) + { + data = (ProfileData)serializer.ReadObject(s); + } + + if (data != null) + { + foreach (AzureEnvironmentData oldEnv in data.Environments) + { + profile.Environments[oldEnv.Name] = oldEnv.ToAzureEnvironment(); + } + + List envs = profile.Environments.Values.ToList(); + foreach (AzureSubscriptionData oldSubscription in data.Subscriptions) + { + try + { + var newSubscription = oldSubscription.ToAzureSubscription(envs); + if (newSubscription.Account == null) + { + continue; + } + + var newAccounts = oldSubscription.ToAzureAccounts(); + foreach (var account in newAccounts) + { + if (profile.Accounts.ContainsKey(account.Id)) + { + profile.Accounts[account.Id].SetOrAppendProperty(AzureAccount.Property.Tenants, + account.GetPropertyAsArray(AzureAccount.Property.Tenants)); + profile.Accounts[account.Id].SetOrAppendProperty(AzureAccount.Property.Subscriptions, + account.GetPropertyAsArray(AzureAccount.Property.Subscriptions)); + } + else + { + profile.Accounts[account.Id] = account; + } + } + + profile.Subscriptions[newSubscription.Id] = newSubscription; + } + catch (Exception ex) + { + // Skip subscription if failed to load + DeserializeErrors.Add(ex.Message); + } + } + } + + return DeserializeErrors.Count == 0; + } + + public IList DeserializeErrors { get; private set; } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Properties/AssemblyInfo.cs b/src/Common/Commands.Common.Authentication/stuff/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..5ad086ec6bf0 --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Commands.Common.Authentication")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Commands.Common.Authentication")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("51ee5716-6b2e-4488-8c7e-97e49e9101b8")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Common/Commands.Common.Authentication/stuff/Utilities/DictionaryExtensions.cs b/src/Common/Commands.Common.Authentication/stuff/Utilities/DictionaryExtensions.cs new file mode 100644 index 000000000000..a8513c13aeae --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Utilities/DictionaryExtensions.cs @@ -0,0 +1,78 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.Common.Authentication.Utilities +{ + public static class DictionaryExtensions + { + public static TValue GetProperty(this Dictionary dictionary, TKey property) + { + if (dictionary.ContainsKey(property)) + { + return dictionary[property]; + } + + return default(TValue); + } + + public static string[] GetPropertyAsArray(this Dictionary dictionary, TKey property) + { + if (dictionary.ContainsKey(property)) + { + return dictionary[property].Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + } + + return new string[0]; + } + + public static void SetProperty(this Dictionary dictionary, TKey property, params string[] values) + { + if (values == null || values.Length == 0) + { + if (dictionary.ContainsKey(property)) + { + dictionary.Remove(property); + } + } + else + { + dictionary[property] = string.Join(",", values); + } + } + + public static void SetOrAppendProperty(this Dictionary dictionary, TKey property, params string[] values) + { + string oldValueString = ""; + if (dictionary.ContainsKey(property)) + { + oldValueString = dictionary[property]; + } + var oldValues = oldValueString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + var newValues = oldValues.Union(values, StringComparer.CurrentCultureIgnoreCase).Where(s => !string.IsNullOrEmpty(s)).ToArray(); + if (newValues.Any()) + { + dictionary[property] = string.Join(",", newValues); + } + } + + public static bool IsPropertySet(this Dictionary dictionary, TKey property) + { + return dictionary.ContainsKey(property) && !string.IsNullOrEmpty(dictionary[property]); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Utilities/FileUtilities.cs b/src/Common/Commands.Common.Authentication/stuff/Utilities/FileUtilities.cs new file mode 100644 index 000000000000..a69f96c4912f --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Utilities/FileUtilities.cs @@ -0,0 +1,321 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Common.Authentication.Properties; +using System; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace Microsoft.Azure.Common.Authentication +{ + public static class FileUtilities + { + static FileUtilities() + { + DataStore = new DiskDataStore(); + } + + public static IDataStore DataStore { get; set; } + + public static string GetAssemblyDirectory() + { + var assemblyPath = Uri.UnescapeDataString(new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath); + return Path.GetDirectoryName(assemblyPath); + } + + public static string GetContentFilePath(string fileName) + { + return GetContentFilePath(GetAssemblyDirectory(), fileName); + } + + public static string GetContentFilePath(string startDirectory, string fileName) + { + string path = Path.Combine(startDirectory, fileName); + + // Try search in the subdirectories in case that the file path does not exist in root path + if (!DataStore.FileExists(path) && !DataStore.DirectoryExists(path)) + { + try + { + path = DataStore.GetDirectories(startDirectory, fileName, SearchOption.AllDirectories).FirstOrDefault(); + + if (string.IsNullOrEmpty(path)) + { + path = DataStore.GetFiles(startDirectory, fileName, SearchOption.AllDirectories).First(); + } + } + catch + { + throw new FileNotFoundException(Path.Combine(startDirectory, fileName)); + } + } + + return path; + } + + public static string GetWithProgramFilesPath(string directoryName, bool throwIfNotFound) + { + string programFilesPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); + if (DataStore.DirectoryExists(Path.Combine(programFilesPath, directoryName))) + { + return Path.Combine(programFilesPath, directoryName); + } + else + { + if (programFilesPath.IndexOf(Resources.x86InProgramFiles, StringComparison.InvariantCultureIgnoreCase) == -1) + { + programFilesPath += Resources.x86InProgramFiles; + if (throwIfNotFound) + { + Validate.ValidateDirectoryExists(Path.Combine(programFilesPath, directoryName)); + } + return Path.Combine(programFilesPath, directoryName); + } + else + { + programFilesPath = programFilesPath.Replace(Resources.x86InProgramFiles, String.Empty); + if (throwIfNotFound) + { + Validate.ValidateDirectoryExists(Path.Combine(programFilesPath, directoryName)); + } + return Path.Combine(programFilesPath, directoryName); + } + } + } + + /// + /// Copies a directory. + /// + /// The source directory name + /// The destination directory name + /// Should the copy be recursive + public static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs) + { + var dirs = DataStore.GetDirectories(sourceDirName); + + if (!DataStore.DirectoryExists(sourceDirName)) + { + throw new DirectoryNotFoundException(String.Format(Resources.PathDoesNotExist, sourceDirName)); + } + + DataStore.CreateDirectory(destDirName); + + var files = DataStore.GetFiles(sourceDirName); + foreach (var file in files) + { + string tempPath = Path.Combine(destDirName, Path.GetFileName(file)); + DataStore.CopyFile(file, tempPath); + } + + if (copySubDirs) + { + foreach (var subdir in dirs) + { + string temppath = Path.Combine(destDirName, Path.GetDirectoryName(subdir)); + DirectoryCopy(subdir, temppath, copySubDirs); + } + } + } + + /// + /// Ensures that a directory exists beofre attempting to write a file + /// + /// The path to the file that will be created + public static void EnsureDirectoryExists(string pathName) + { + Validate.ValidateStringIsNullOrEmpty(pathName, "Settings directory"); + string directoryPath = Path.GetDirectoryName(pathName); + if (!DataStore.DirectoryExists(directoryPath)) + { + DataStore.CreateDirectory(directoryPath); + } + } + + /// + /// Create a unique temp directory. + /// + /// Path to the temp directory. + public static string CreateTempDirectory() + { + string tempPath; + do + { + tempPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); + } + while (DataStore.DirectoryExists(tempPath) || DataStore.FileExists(tempPath)); + + DataStore.CreateDirectory(tempPath); + return tempPath; + } + + /// + /// Copy a directory from one path to another. + /// + /// Source directory. + /// Destination directory. + public static void CopyDirectory(string sourceDirectory, string destinationDirectory) + { + Debug.Assert(!String.IsNullOrEmpty(sourceDirectory), "sourceDictory cannot be null or empty!"); + Debug.Assert(Directory.Exists(sourceDirectory), "sourceDirectory must exist!"); + Debug.Assert(!String.IsNullOrEmpty(destinationDirectory), "destinationDirectory cannot be null or empty!"); + Debug.Assert(!Directory.Exists(destinationDirectory), "destinationDirectory must not exist!"); + + foreach (string file in DataStore.GetFiles(sourceDirectory, "*", SearchOption.AllDirectories)) + { + string relativePath = file.Substring( + sourceDirectory.Length + 1, + file.Length - sourceDirectory.Length - 1); + string destinationPath = Path.Combine(destinationDirectory, relativePath); + + string destinationDir = Path.GetDirectoryName(destinationPath); + if (!DataStore.DirectoryExists(destinationDir)) + { + DataStore.CreateDirectory(destinationDir); + } + + DataStore.CopyFile(file, destinationPath); + } + } + + public static Encoding GetFileEncoding(string path) + { + Encoding encoding; + + + if (DataStore.FileExists(path)) + { + using (StreamReader r = new StreamReader(DataStore.ReadFileAsStream(path))) + { + encoding = r.CurrentEncoding; + } + } + else + { + encoding = Encoding.Default; + } + + return encoding; + } + + public static string CombinePath(params string[] paths) + { + return Path.Combine(paths); + } + + /// + /// Returns true if path is a valid directory. + /// + /// + /// + public static bool IsValidDirectoryPath(string path) + { + if (String.IsNullOrEmpty(path)) + { + return false; + } + + try + { + FileAttributes attributes = DataStore.GetFileAttributes(path); + + if ((attributes & FileAttributes.Directory) == FileAttributes.Directory) + { + return true; + } + else + { + return false; + } + } + catch + { + return false; + } + } + + public static void RecreateDirectory(string dir) + { + if (DataStore.DirectoryExists(dir)) + { + DataStore.DeleteDirectory(dir); + } + + DataStore.CreateDirectory(dir); + } + + /// + /// Gets the root installation path for the given Azure module. + /// + /// The module name + /// The module full path + public static string GetPSModulePathForModule(AzureModule module) + { + return GetContentFilePath(GetInstallPath(), GetModuleFolderName(module)); + } + + /// + /// Gets the root directory for all modules installation. + /// + /// The install path + public static string GetInstallPath() + { + string currentPath = GetAssemblyDirectory(); + while (!currentPath.EndsWith(GetModuleFolderName(AzureModule.AzureProfile)) && + !currentPath.EndsWith(GetModuleFolderName(AzureModule.AzureResourceManager)) && + !currentPath.EndsWith(GetModuleFolderName(AzureModule.AzureServiceManagement))) + { + currentPath = Directory.GetParent(currentPath).FullName; + } + + // The assemption is that the install directory looks like that: + // ServiceManagement + // AzureServiceManagement + // + // ResourceManager + // AzureResourceManager + // + // Profile + // AzureSMProfile + // + return Directory.GetParent(currentPath).FullName; + } + + public static string GetModuleName(AzureModule module) + { + switch (module) + { + case AzureModule.AzureServiceManagement: + return "Azure"; + + case AzureModule.AzureResourceManager: + return "AzureResourceManager"; + + case AzureModule.AzureProfile: + return "AzureProfile"; + + default: + throw new ArgumentOutOfRangeException(module.ToString()); + } + } + + public static string GetModuleFolderName(AzureModule module) + { + return module.ToString().Replace("Azure", ""); + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Utilities/JsonUtilities.cs b/src/Common/Commands.Common.Authentication/stuff/Utilities/JsonUtilities.cs new file mode 100644 index 000000000000..6c441fc74e7d --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Utilities/JsonUtilities.cs @@ -0,0 +1,204 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Properties; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; + +namespace Microsoft.Azure.Common.Authentication +{ + public static class JsonUtilities + { + [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "Handling the failure by returning the original string.")] + public static string TryFormatJson(string str) + { + try + { + object parsedJson = JsonConvert.DeserializeObject(str); + return JsonConvert.SerializeObject(parsedJson, Formatting.Indented); + } + catch + { + // can't parse JSON, return the original string + return str; + } + } + + public static Dictionary DeserializeJson(string jsonString, bool throwExceptionOnFailure = false) + { + Dictionary result = new Dictionary(); + if (jsonString == null) + { + return null; + } + if (String.IsNullOrWhiteSpace(jsonString)) + { + return result; + } + + try + { + JToken responseDoc = JToken.Parse(jsonString); + + if (responseDoc != null && responseDoc.Type == JTokenType.Object) + { + result = DeserializeJObject(responseDoc as JObject); + } + } + catch + { + if (throwExceptionOnFailure) + { + throw; + } + result = null; + } + return result; + } + + private static Dictionary DeserializeJObject(JObject jsonObject) + { + Dictionary result = new Dictionary(); + if (jsonObject == null || jsonObject.Type == JTokenType.Null) + { + return result; + } + foreach (var property in jsonObject) + { + if (property.Value.Type == JTokenType.Object) + { + result[property.Key] = DeserializeJObject(property.Value as JObject); + } + else if (property.Value.Type == JTokenType.Array) + { + result[property.Key] = DeserializeJArray(property.Value as JArray); + } + else + { + result[property.Key] = DeserializeJValue(property.Value as JValue); + } + } + return result; + } + + private static List DeserializeJArray(JArray jsonArray) + { + List result = new List(); + if (jsonArray == null || jsonArray.Type == JTokenType.Null) + { + return result; + } + foreach (var token in jsonArray) + { + if (token.Type == JTokenType.Object) + { + result.Add(DeserializeJObject(token as JObject)); + } + else if (token.Type == JTokenType.Array) + { + result.Add(DeserializeJArray(token as JArray)); + } + else + { + result.Add(DeserializeJValue(token as JValue)); + } + } + return result; + } + + private static object DeserializeJValue(JValue jsonObject) + { + if (jsonObject == null || jsonObject.Type == JTokenType.Null) + { + return null; + } + + return jsonObject.Value; + } + + public static string Patch(string originalJsonString, string patchJsonString) + { + if (string.IsNullOrWhiteSpace(originalJsonString)) + { + return patchJsonString; + } + else if (string.IsNullOrWhiteSpace(patchJsonString)) + { + return originalJsonString; + } + + JToken originalJson = JToken.Parse(originalJsonString); + JToken patchJson = JToken.Parse(patchJsonString); + + if (originalJson != null && originalJson.Type == JTokenType.Object && + patchJson != null && patchJson.Type == JTokenType.Object) + { + PatchJObject(originalJson as JObject, patchJson as JObject); + } + else if (originalJson != null && originalJson.Type == JTokenType.Array && + patchJson != null && patchJson.Type == JTokenType.Array) + { + originalJson = patchJson; + } + else if (originalJson != null && patchJson != null && originalJson.Type == patchJson.Type) + { + originalJson = patchJson; + } + else + { + throw new ArgumentException(string.Format(Resources.UnableToPatchJson, originalJson, patchJson)); + } + + return originalJson.ToString(Formatting.None); + } + + private static void PatchJObject(JObject originalJsonObject, JObject patchJsonObject) + { + foreach (var patchProperty in patchJsonObject) + { + if (originalJsonObject[patchProperty.Key] != null) + { + JToken originalJson = originalJsonObject[patchProperty.Key]; + JToken patchJson = patchProperty.Value; + + if (originalJson != null && originalJson.Type == JTokenType.Object && + patchJson != null && patchJson.Type == JTokenType.Object) + { + PatchJObject(originalJson as JObject, patchJson as JObject); + } + else if (originalJson != null && originalJson.Type == JTokenType.Array && + patchJson != null && patchJson.Type == JTokenType.Array) + { + originalJsonObject[patchProperty.Key] = patchJson; + } + else if (originalJson != null && patchJson != null && originalJson.Type == patchJson.Type) + { + originalJsonObject[patchProperty.Key] = patchJson; + } + else + { + throw new ArgumentException(string.Format(Resources.UnableToPatchJson, originalJson, patchJson)); + } + } + else + { + originalJsonObject[patchProperty.Key] = patchProperty.Value; + } + } + } + } +} diff --git a/src/Common/Commands.Common.Authentication/stuff/Utilities/XmlUtilities.cs b/src/Common/Commands.Common.Authentication/stuff/Utilities/XmlUtilities.cs new file mode 100644 index 000000000000..3fcca7780aad --- /dev/null +++ b/src/Common/Commands.Common.Authentication/stuff/Utilities/XmlUtilities.cs @@ -0,0 +1,129 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Common.Authentication.Properties; +using System; +using System.IO; +using System.Text; +using System.Xml; +using System.Xml.Linq; +using System.Xml.Serialization; + +namespace Microsoft.Azure.Common.Authentication +{ + public static class XmlUtilities + { + public static T DeserializeXmlFile(string fileName, string exceptionMessage = null) + { + // TODO: fix and uncomment. second parameter is wrong + // Validate.ValidateFileFull(fileName, string.Format(Resources.PathDoesNotExistForElement, string.Empty, fileName)); + + T item; + + XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); + using (TextReader reader = new StreamReader(FileUtilities.DataStore.ReadFileAsStream(fileName))) + { + try { item = (T)xmlSerializer.Deserialize(reader); } + catch + { + if (!String.IsNullOrEmpty(exceptionMessage)) + { + throw new InvalidOperationException(exceptionMessage); + } + else + { + throw; + } + } + } + + return item; + } + + public static void SerializeXmlFile(T obj, string fileName) + { + Validate.ValidatePathName(fileName, String.Format(Resources.PathDoesNotExistForElement, String.Empty, fileName)); + Validate.ValidateStringIsNullOrEmpty(fileName, String.Empty); + + XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); + StringBuilder sBuilder = new StringBuilder(); + using (StringWriter writer = new StringWriter(sBuilder)) + { + xmlSerializer.Serialize(writer, obj); + } + FileUtilities.DataStore.WriteFile(fileName, sBuilder.ToString(), Encoding.Unicode); + } + + public static string SerializeXmlString(T obj) + { + XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); + StringBuilder sBuilder = new StringBuilder(); + + using (StringWriter writer = new StringWriter(sBuilder)) + { + xmlSerializer.Serialize(writer, obj); + } + + return sBuilder.ToString(); + } + + /// + /// Formats the given XML into indented way. + /// + /// The input xml string + /// The formatted xml string + public static string TryFormatXml(string content) + { + try + { + XDocument doc = XDocument.Parse(content); + return doc.ToString(); + } + catch (Exception) + { + return content; + } + } + + /// + /// Formats given string into well formatted XML. + /// + /// The unformatted xml string + /// The formatted XML string + public static string Beautify(string unformattedXml) + { + string formattedXml = String.Empty; + if (!String.IsNullOrEmpty(unformattedXml)) + { + XmlDocument doc = new XmlDocument(); + doc.LoadXml(unformattedXml); + StringBuilder stringBuilder = new StringBuilder(); + XmlWriterSettings settings = new XmlWriterSettings() + { + Indent = true, + IndentChars = "\t", + NewLineChars = Environment.NewLine, + NewLineHandling = NewLineHandling.Replace + }; + using (XmlWriter writer = XmlWriter.Create(stringBuilder, settings)) + { + doc.Save(writer); + } + formattedXml = stringBuilder.ToString(); + } + + return formattedXml; + } + } +} diff --git a/src/Common/Commands.Common.Storage/AzureContextExtensions.cs b/src/Common/Commands.Common.Storage/AzureContextExtensions.cs index b6cd0c778715..bb3604da3d0b 100644 --- a/src/Common/Commands.Common.Storage/AzureContextExtensions.cs +++ b/src/Common/Commands.Common.Storage/AzureContextExtensions.cs @@ -12,16 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System; -using System.Collections.Generic; -using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; using ArmStorage = Microsoft.Azure.Management.Storage; using SmStorage = Microsoft.WindowsAzure.Management.Storage; using Microsoft.WindowsAzure.Storage; -using Microsoft.Azure.Common.Authentication; -using Microsoft.WindowsAzure.Storage.Auth; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { diff --git a/src/Common/Commands.Common.Storage/Commands.Common.Storage.csproj b/src/Common/Commands.Common.Storage/Commands.Common.Storage.csproj index b2e13eb797dc..ad442753231e 100644 --- a/src/Common/Commands.Common.Storage/Commands.Common.Storage.csproj +++ b/src/Common/Commands.Common.Storage/Commands.Common.Storage.csproj @@ -55,10 +55,6 @@ False ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -95,8 +91,12 @@ False ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -130,10 +130,6 @@ False ..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - - ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - @@ -190,6 +186,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/Common/Commands.Common.Storage/WindowsAzureSubscriptionExtensions.cs b/src/Common/Commands.Common.Storage/WindowsAzureSubscriptionExtensions.cs index c8e835b23261..b4656f889962 100644 --- a/src/Common/Commands.Common.Storage/WindowsAzureSubscriptionExtensions.cs +++ b/src/Common/Commands.Common.Storage/WindowsAzureSubscriptionExtensions.cs @@ -15,11 +15,11 @@ using System; using System.Collections.Generic; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Management.Storage; using Microsoft.WindowsAzure.Storage; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { diff --git a/src/Common/Commands.Common.Storage/packages.config b/src/Common/Commands.Common.Storage/packages.config index 68b1d030a408..44fd74ae3f2e 100644 --- a/src/Common/Commands.Common.Storage/packages.config +++ b/src/Common/Commands.Common.Storage/packages.config @@ -2,7 +2,6 @@ - @@ -15,8 +14,8 @@ - - + + diff --git a/src/Common/Commands.Common/AzureDataCmdlet.cs b/src/Common/Commands.Common/AzureDataCmdlet.cs index 001e11e6b33c..9d615d2049a3 100644 --- a/src/Common/Commands.Common/AzureDataCmdlet.cs +++ b/src/Common/Commands.Common/AzureDataCmdlet.cs @@ -21,8 +21,8 @@ using System.Text; using System.Threading; using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json; using Microsoft.WindowsAzure.Commands.Common.Properties; @@ -31,7 +31,7 @@ namespace Microsoft.WindowsAzure.Commands.Common { public class AzureDataCmdlet : AzurePSCmdlet { - protected override Azure.Common.Authentication.Models.AzureContext DefaultContext + protected override AzureContext DefaultContext { get { @@ -95,7 +95,7 @@ protected override void PromptForDataCollectionProfileIfNotExists() while (!this.Host.UI.RawUI.KeyAvailable && elapsedSeconds < timeToWaitInSeconds) { - Thread.Sleep(TimeSpan.FromMilliseconds(10)); + TestMockSupport.Delay(10*1000); endTime = DateTime.Now; elapsedSeconds = (endTime - startTime).TotalSeconds; @@ -119,7 +119,6 @@ protected override void PromptForDataCollectionProfileIfNotExists() SaveDataCollectionProfile(); } } - protected override void InitializeQosEvent() { } diff --git a/src/Common/Commands.Common/AzurePSCmdlet.cs b/src/Common/Commands.Common/AzurePSCmdlet.cs index 6cfddec82999..9ac88c3f06aa 100644 --- a/src/Common/Commands.Common/AzurePSCmdlet.cs +++ b/src/Common/Commands.Common/AzurePSCmdlet.cs @@ -16,19 +16,17 @@ using System.Collections.Concurrent; using System.Diagnostics; using System.Management.Automation; -using System.Net.Http.Headers; using System.Reflection; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.WindowsAzure.Commands.Common; using Newtonsoft.Json; using System.IO; -using System.Management.Automation.Host; using System.Text; using System.Linq; -using System.Threading; -using Microsoft.Rest; +using System.Net.Http.Headers; using Microsoft.ApplicationInsights; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { @@ -37,22 +35,17 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.Common /// public abstract class AzurePSCmdlet : PSCmdlet, IDisposable { - protected readonly ConcurrentQueue _debugMessages; + public ConcurrentQueue DebugMessages { get; private set; } private RecordingTracingInterceptor _httpTracingInterceptor; - - private DebugStreamTraceListener _adalListener; - - private ServiceClientTracingInterceptor _serviceClientTracingInterceptor; - protected static AzurePSDataCollectionProfile _dataCollectionProfile = null; protected static string _errorRecordFolderPath = null; protected static string _sessionId = Guid.NewGuid().ToString(); protected const string _fileTimeStampSuffixFormat = "yyyy-MM-dd-THH-mm-ss-fff"; protected string _clientRequestId = Guid.NewGuid().ToString(); protected MetricHelper _metricHelper; - - protected AzurePSQoSEvent QosEvent; + protected AzurePSQoSEvent _qosEvent; + protected DebugStreamTraceListener _adalListener; protected virtual bool IsUsageMetricEnabled { get { return true; } @@ -75,7 +68,8 @@ protected virtual bool IsErrorMetricEnabled protected string ModuleVersion { get { return Assembly.GetCallingAssembly().GetName().Version.ToString(); } } /// - /// Gets the default Azure context. + /// The context for management cmdlet requests - includes account, tenant, subscription, + /// and credential information for targeting and authorizing management calls. /// protected abstract AzureContext DefaultContext { get; } @@ -84,7 +78,7 @@ protected virtual bool IsErrorMetricEnabled /// public AzurePSCmdlet() { - _debugMessages = new ConcurrentQueue(); + DebugMessages = new ConcurrentQueue(); //TODO: Inject from CI server _metricHelper = new MetricHelper(); @@ -123,11 +117,13 @@ protected static void InitializeDataCollectionProfile() // If the environment value is null or empty, or not correctly set, try to read the setting from default file location. if (_dataCollectionProfile == null) { - string fileFullPath = Path.Combine(AzureSession.ProfileDirectory, AzurePSDataCollectionProfile.DefaultFileName); - if (File.Exists(fileFullPath)) + string fileFullPath = Path.Combine(AzurePowerShell.ProfileDirectory, + AzurePSDataCollectionProfile.DefaultFileName); + if(File.Exists(fileFullPath)) { string contents = File.ReadAllText(fileFullPath); - _dataCollectionProfile = JsonConvert.DeserializeObject(contents); + _dataCollectionProfile = + JsonConvert.DeserializeObject(contents); } } @@ -168,9 +164,8 @@ public static bool IsDataCollectionAllowed() } /// - /// Save the current data collection profile Json data into the default file path + /// Save the current data collection profile JSON data into the default file path /// - /// protected abstract void SaveDataCollectionProfile(); protected bool CheckIfInteractive() @@ -179,7 +174,8 @@ protected bool CheckIfInteractive() if (this.Host == null || this.Host.UI == null || this.Host.UI.RawUI == null || - Environment.GetCommandLineArgs().Any(s => s.Equals("-NonInteractive", StringComparison.OrdinalIgnoreCase))) + Environment.GetCommandLineArgs().Any(s => + s.Equals("-NonInteractive", StringComparison.OrdinalIgnoreCase))) { interactive = false; } @@ -205,85 +201,109 @@ protected bool CheckIfInteractive() /// /// Prompt for the current data collection profile /// - /// protected abstract void PromptForDataCollectionProfileIfNotExists(); - /// - /// Cmdlet begin process. Write to logs, setup Http Tracing and initialize profile - /// - protected override void BeginProcessing() + protected virtual void LogCmdletStartInvocationInfo() { - PromptForDataCollectionProfileIfNotExists(); - InitializeQosEvent(); if (string.IsNullOrEmpty(ParameterSetName)) { - WriteDebugWithTimestamp(string.Format("{0} begin processing without ParameterSet.", this.GetType().Name)); + WriteDebugWithTimestamp(string.Format("{0} begin processing " + + "without ParameterSet.", this.GetType().Name)); } else { - WriteDebugWithTimestamp(string.Format("{0} begin processing with ParameterSet '{1}'.", this.GetType().Name, ParameterSetName)); + WriteDebugWithTimestamp(string.Format("{0} begin processing " + + "with ParameterSet '{1}'.", this.GetType().Name, ParameterSetName)); } + } - if (DefaultContext != null && DefaultContext.Account != null && DefaultContext.Account.Id != null) - { - WriteDebugWithTimestamp(string.Format("using account id '{0}'...", DefaultContext.Account.Id)); - } + protected virtual void LogCmdletEndInvocationInfo() + { + string message = string.Format("{0} end processing.", this.GetType().Name); + WriteDebugWithTimestamp(message); + } - _httpTracingInterceptor = _httpTracingInterceptor ?? new RecordingTracingInterceptor(_debugMessages); - _adalListener = _adalListener ?? new DebugStreamTraceListener(_debugMessages); - _serviceClientTracingInterceptor = _serviceClientTracingInterceptor ?? new ServiceClientTracingInterceptor(_debugMessages); + protected virtual void SetupDebuggingTraces() + { + _httpTracingInterceptor = _httpTracingInterceptor ?? new + RecordingTracingInterceptor(DebugMessages); + _adalListener = _adalListener ?? new DebugStreamTraceListener(DebugMessages); RecordingTracingInterceptor.AddToContext(_httpTracingInterceptor); DebugStreamTraceListener.AddAdalTracing(_adalListener); - ServiceClientTracing.AddTracingInterceptor(_serviceClientTracingInterceptor); + } + protected virtual void TearDownDebuggingTraces() + { + RecordingTracingInterceptor.RemoveFromContext(_httpTracingInterceptor); + DebugStreamTraceListener.RemoveAdalTracing(_adalListener); + FlushDebugMessages(); + } + + + protected virtual void SetupHttpClientPipeline() + { ProductInfoHeaderValue userAgentValue = new ProductInfoHeaderValue( ModuleName, string.Format("v{0}", ModuleVersion)); AzureSession.ClientFactory.UserAgents.Add(userAgentValue); - AzureSession.ClientFactory.AddHandler(new CmdletInfoHandler(this.CommandRuntime.ToString(), this.ParameterSetName, this._clientRequestId)); + AzureSession.ClientFactory.AddHandler( + new CmdletInfoHandler(this.CommandRuntime.ToString(), + this.ParameterSetName, this._clientRequestId)); + + } + + protected virtual void TearDownHttpClientPipeline() + { + AzureSession.ClientFactory.UserAgents.RemoveWhere(u => u.Product.Name == ModuleName); + AzureSession.ClientFactory.RemoveHandler(typeof(CmdletInfoHandler)); + } + /// + /// Cmdlet begin process. Write to logs, setup Http Tracing and initialize profile + /// + protected override void BeginProcessing() + { + PromptForDataCollectionProfileIfNotExists(); + InitializeQosEvent(); + LogCmdletStartInvocationInfo(); + SetupDebuggingTraces(); + SetupHttpClientPipeline(); base.BeginProcessing(); } /// - /// End processing. Flush messages in tracing interceptor and save profile and removes user agent. + /// Perform end of pipeline processing. /// protected override void EndProcessing() { LogQosEvent(); - string message = string.Format("{0} end processing.", this.GetType().Name); - WriteDebugWithTimestamp(message); - - RecordingTracingInterceptor.RemoveFromContext(_httpTracingInterceptor); - DebugStreamTraceListener.RemoveAdalTracing(_adalListener); - ServiceClientTracingInterceptor.RemoveTracingInterceptor(_serviceClientTracingInterceptor); - FlushDebugMessages(); - - AzureSession.ClientFactory.UserAgents.RemoveWhere(u => u.Product.Name == ModuleName); - AzureSession.ClientFactory.RemoveHandler(typeof(CmdletInfoHandler)); + LogCmdletEndInvocationInfo(); + TearDownDebuggingTraces(); + TearDownHttpClientPipeline(); base.EndProcessing(); } protected string CurrentPath() { // SessionState is only available within PowerShell so default to - // the CurrentDirectory when being run from tests. + // the TestMockSupport.TestExecutionFolder when being run from tests. return (SessionState != null) ? SessionState.Path.CurrentLocation.Path : - Environment.CurrentDirectory; + TestMockSupport.TestExecutionFolder; } protected bool IsVerbose() { - bool verbose = MyInvocation.BoundParameters.ContainsKey("Verbose") && ((SwitchParameter)MyInvocation.BoundParameters["Verbose"]).ToBool(); + bool verbose = MyInvocation.BoundParameters.ContainsKey("Verbose") + && ((SwitchParameter)MyInvocation.BoundParameters["Verbose"]).ToBool(); return verbose; } protected new void WriteError(ErrorRecord errorRecord) { FlushDebugMessages(IsDataCollectionAllowed()); - if (QosEvent != null && errorRecord != null) + if (_qosEvent != null && errorRecord != null) { - QosEvent.Exception = errorRecord.Exception; - QosEvent.IsSuccess = false; + _qosEvent.Exception = errorRecord.Exception; + _qosEvent.IsSuccess = false; } base.WriteError(errorRecord); @@ -400,7 +420,7 @@ private void FlushDebugMessages(bool record = false) } string message; - while (_debugMessages.TryDequeue(out message)) + while (DebugMessages.TryDequeue(out message)) { base.WriteDebug(message); } @@ -411,9 +431,11 @@ private void FlushDebugMessages(bool record = false) private void RecordDebugMessages() { // Create 'ErrorRecords' folder under profile directory, if not exists - if (string.IsNullOrEmpty(_errorRecordFolderPath) || !Directory.Exists(_errorRecordFolderPath)) + if (string.IsNullOrEmpty(_errorRecordFolderPath) + || !Directory.Exists(_errorRecordFolderPath)) { - _errorRecordFolderPath = Path.Combine(AzureSession.ProfileDirectory, "ErrorRecords"); + _errorRecordFolderPath = Path.Combine(AzurePowerShell.ProfileDirectory, + "ErrorRecords"); Directory.CreateDirectory(_errorRecordFolderPath); } @@ -437,12 +459,12 @@ private void RecordDebugMessages() sb.AppendLine(); - foreach (var content in _debugMessages) + foreach (var content in DebugMessages) { sb.AppendLine(content); } - AzureSession.DataStore.WriteFile(filePath, sb.ToString()); + AzureSession.DataStore.WriteFile(filePath, sb.ToString()); } /// @@ -450,14 +472,14 @@ private void RecordDebugMessages() /// protected void LogQosEvent() { - if (QosEvent == null) + if (_qosEvent == null) { return; } - QosEvent.FinishQosEvent(); + _qosEvent.FinishQosEvent(); - if (!IsUsageMetricEnabled && (!IsErrorMetricEnabled || QosEvent.IsSuccess)) + if (!IsUsageMetricEnabled && (!IsErrorMetricEnabled || _qosEvent.IsSuccess)) { return; } @@ -467,11 +489,11 @@ protected void LogQosEvent() return; } - WriteDebug(QosEvent.ToString()); + WriteDebug(_qosEvent.ToString()); try { - _metricHelper.LogQoSEvent(QosEvent, IsUsageMetricEnabled, IsErrorMetricEnabled); + _metricHelper.LogQoSEvent(_qosEvent, IsUsageMetricEnabled, IsErrorMetricEnabled); _metricHelper.FlushMetric(); WriteDebug("Finish sending metric."); } @@ -492,18 +514,18 @@ protected void LogQosEvent() /// The action code protected void ConfirmAction(bool force, string actionMessage, string processMessage, string target, Action action) { - if (QosEvent != null) + if (_qosEvent != null) { - QosEvent.PauseQoSTimer(); + _qosEvent.PauseQoSTimer(); } if (force || ShouldContinue(actionMessage, "")) { if (ShouldProcess(target, processMessage)) { - if (QosEvent != null) + if (_qosEvent != null) { - QosEvent.ResumeQosTimer(); + _qosEvent.ResumeQosTimer(); } action(); } @@ -530,19 +552,21 @@ protected override void ProcessRecord() protected virtual void Dispose(bool disposing) { - if (_adalListener != null) + try + { + FlushDebugMessages(); + } + catch { } + if (disposing && _adalListener != null) { _adalListener.Dispose(); + _adalListener = null; } + } public void Dispose() { - try - { - FlushDebugMessages(); - } - catch { } Dispose(true); GC.SuppressFinalize(this); } diff --git a/src/Common/Commands.Common/AzurePSDataCollectionProfile.cs b/src/Common/Commands.Common/AzurePSDataCollectionProfile.cs index cd8c9694c967..8e1880306378 100644 --- a/src/Common/Commands.Common/AzurePSDataCollectionProfile.cs +++ b/src/Common/Commands.Common/AzurePSDataCollectionProfile.cs @@ -12,10 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System; -using System.IO; using Newtonsoft.Json; -using Microsoft.Azure.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Common { @@ -35,5 +32,6 @@ public AzurePSDataCollectionProfile(bool enable) [JsonProperty(PropertyName = "enableAzureDataCollection")] public bool? EnableAzureDataCollection { get; set; } + } } diff --git a/src/Common/Commands.Common/AzurePowerShell.cs b/src/Common/Commands.Common/AzurePowerShell.cs index ca6942e92c28..96d80f1b46fe 100644 --- a/src/Common/Commands.Common/AzurePowerShell.cs +++ b/src/Common/Commands.Common/AzurePowerShell.cs @@ -15,7 +15,6 @@ using System; using System.IO; using System.Net.Http.Headers; -using Microsoft.Azure.Common.Authentication.Properties; namespace Microsoft.WindowsAzure.Commands.Common { @@ -45,6 +44,6 @@ public class AzurePowerShell public static string ProfileDirectory = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), - Resources.AzureDirectoryName); + "Windows Azure PowerShell"); } } diff --git a/src/Common/Commands.Common/AzureRmProfileProvider.cs b/src/Common/Commands.Common/AzureRmProfileProvider.cs index fddf65d662a4..4899e4fa2068 100644 --- a/src/Common/Commands.Common/AzureRmProfileProvider.cs +++ b/src/Common/Commands.Common/AzureRmProfileProvider.cs @@ -12,8 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Common { diff --git a/src/Common/Commands.Common/AzureSMProfileProvder.cs b/src/Common/Commands.Common/AzureSMProfileProvder.cs index b9d6efd86463..638c4774bacb 100644 --- a/src/Common/Commands.Common/AzureSMProfileProvder.cs +++ b/src/Common/Commands.Common/AzureSMProfileProvder.cs @@ -14,8 +14,8 @@ using System; using System.IO; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.IdentityModel.Clients.ActiveDirectory; using Microsoft.WindowsAzure.Commands.Utilities.Common; @@ -68,9 +68,11 @@ private AzureSMProfile InitializeDefaultProfile() try { GeneralUtilities.EnsureDefaultProfileDirectoryExists(); - _defaultDiskTokenCache = new ProtectedFileTokenCache(Path.Combine(AzureSession.ProfileDirectory, + _defaultDiskTokenCache = new ProtectedFileTokenCache( + Path.Combine(AzureSession.ProfileDirectory, AzureSession.TokenCacheFile)); - return new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile)); + return new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, + AzureSession.ProfileFile)); } catch { diff --git a/src/Common/Commands.Common/Commands.Common.csproj b/src/Common/Commands.Common/Commands.Common.csproj index fa86ffe6fbdb..93ff04d6eee5 100644 --- a/src/Common/Commands.Common/Commands.Common.csproj +++ b/src/Common/Commands.Common/Commands.Common.csproj @@ -62,28 +62,23 @@ False ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - False ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - - False - ..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - - + False ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll - False ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -102,10 +97,6 @@ False ..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll - - ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - ..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll True @@ -148,18 +139,16 @@ - + - True True Resources.resx - @@ -168,12 +157,10 @@ - - @@ -189,6 +176,11 @@ Designer - + + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + + \ No newline at end of file diff --git a/src/Common/Commands.Common/ConcurrentQueueExtensions.cs b/src/Common/Commands.Common/ConcurrentQueueExtensions.cs index 8d47736950a2..7107947cc3e5 100644 --- a/src/Common/Commands.Common/ConcurrentQueueExtensions.cs +++ b/src/Common/Commands.Common/ConcurrentQueueExtensions.cs @@ -12,11 +12,6 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Collections.Concurrent; namespace Microsoft.WindowsAzure.Commands.Common diff --git a/src/Common/Commands.Common/Constants.cs b/src/Common/Commands.Common/Constants.cs index 65543c7b00df..3dafaae07c6e 100644 --- a/src/Common/Commands.Common/Constants.cs +++ b/src/Common/Commands.Common/Constants.cs @@ -17,19 +17,13 @@ namespace Microsoft.WindowsAzure.Commands.Common public static class ApiConstants { public const string AuthorizationHeaderName = "Authorization"; - public const string BasicAuthorization = "Basic"; - public const string UserAgentHeaderName = "User-Agent"; - - public const string UserAgentHeaderValue = "AzurePowershell/v" + AzurePowerShell.AssemblyVersion; - + public const string UserAgentHeaderValue = "AzurePowershell/v" + + AzurePowerShell.AssemblyVersion; public const string VSDebuggerCausalityDataHeaderName = "VSDebuggerCausalityData"; - public const string OperationTrackingIdHeader = "x-ms-request-id"; - public const string VersionHeaderContentLatest = "2013-08-01"; - public const string VersionHeaderName = "x-ms-version"; } @@ -42,15 +36,10 @@ public static class StorSimpleConstants public class SDKVersion { public const string Version180 = "1.8.0"; - public const string Version200 = "2.0.0"; - public const string Version220 = "2.2.0"; - public const string Version230 = "2.3.0"; - public const string Version240 = "2.4.0"; - public const string Version250 = "2.5.0"; } diff --git a/src/Common/Commands.Common/ContextExtensions.cs b/src/Common/Commands.Common/ContextExtensions.cs index 5ea74714e8a9..9a22b05499e6 100644 --- a/src/Common/Commands.Common/ContextExtensions.cs +++ b/src/Common/Commands.Common/ContextExtensions.cs @@ -12,12 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Common { diff --git a/src/Common/Commands.Common/ConversionUtilities.cs b/src/Common/Commands.Common/ConversionUtilities.cs index 270b4153b08a..57904f59fc4a 100644 --- a/src/Common/Commands.Common/ConversionUtilities.cs +++ b/src/Common/Commands.Common/ConversionUtilities.cs @@ -24,7 +24,8 @@ namespace Microsoft.WindowsAzure.Commands.Common { public static class ConversionUtilities { - public static Dictionary ToDictionary(this Hashtable hashtable, bool addValueLayer) + public static Dictionary ToDictionary(this Hashtable hashtable, + bool addValueLayer) { if (hashtable == null) { @@ -39,7 +40,8 @@ public static Dictionary ToDictionary(this Hashtable hashtable, if (valueAsHashtable != null) { - dictionary[(string)entry.Key] = valueAsHashtable.ToDictionary(addValueLayer); + dictionary[(string)entry.Key] = + valueAsHashtable.ToDictionary(addValueLayer); } else { @@ -85,7 +87,9 @@ public static Hashtable ToHashtable(this IDictionary dictionary) /// The array into string representation public static string ArrayToString(this T[] array, string delimiter) { - return (array == null) ? null : (array.Length == 0) ? String.Empty : array.Skip(1).Aggregate(new StringBuilder(array[0].ToString()), (s, i) => s.Append(delimiter).Append(i), s => s.ToString()); + return (array == null) ? null : (array.Length == 0) ? String.Empty + : array.Skip(1).Aggregate(new StringBuilder(array[0].ToString()), + (s, i) => s.Append(delimiter).Append(i), s => s.ToString()); } public static string SecureStringToString(SecureString secureString) diff --git a/src/Common/Commands.Common/GeneralUtilities.cs b/src/Common/Commands.Common/GeneralUtilities.cs index ccf454082b35..9675dc827ace 100644 --- a/src/Common/Commands.Common/GeneralUtilities.cs +++ b/src/Common/Commands.Common/GeneralUtilities.cs @@ -24,11 +24,15 @@ using System.Security.Cryptography.X509Certificates; using System.ServiceModel.Channels; using System.Text; -using System.Xml; +using System.Xml.Linq; using Hyak.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.WindowsAzure.Commands.Common; +using Newtonsoft.Json; +using Formatting = System.Xml.Formatting; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { @@ -51,7 +55,11 @@ private static bool TryFindCertificatesInStore(string thumbprint, public static X509Certificate2 GetCertificateFromStore(string thumbprint) { - Validate.ValidateStringIsNullOrEmpty(thumbprint, "certificate thumbprint"); + if (string.IsNullOrWhiteSpace(thumbprint)) + { + throw new ArgumentNullException("certificate thumbprint"); + } + X509Certificate2Collection certificates; if (TryFindCertificatesInStore(thumbprint, StoreLocation.CurrentUser, out certificates) || TryFindCertificatesInStore(thumbprint, StoreLocation.LocalMachine, out certificates)) @@ -61,7 +69,8 @@ public static X509Certificate2 GetCertificateFromStore(string thumbprint) else { throw new ArgumentException(string.Format( - Microsoft.Azure.Common.Authentication.Properties.Resources.CertificateNotFoundInStore, + "Certificate {0} was not found in the certificate store. Please ensure the referenced " + + "certificate exists in the the LocalMachine\\My or CurrentUser\\My store", thumbprint)); } } @@ -83,24 +92,6 @@ public static bool TryEquals(string leftHandSide, string rightHandSide) return false; } - public static string ReadMessageBody(ref Message originalMessage) - { - StringBuilder strBuilder = new StringBuilder(); - - using (MessageBuffer messageBuffer = originalMessage.CreateBufferedCopy(int.MaxValue)) - { - Message message = messageBuffer.CreateMessage(); - XmlWriter writer = XmlWriter.Create(strBuilder); - using (XmlDictionaryWriter dictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer)) - { - message.WriteBodyContents(dictionaryWriter); - } - - originalMessage = messageBuffer.CreateMessage(); - } - - return XmlUtilities.Beautify(strBuilder.ToString()); - } public static string GetConfiguration(string configurationPath) { @@ -298,7 +289,8 @@ public static string GetHttpRequestLog(string method, string requestUri, HttpHea public static string GetLog(HttpResponseMessage response) { - string body = response.Content == null ? string.Empty : FormatString(response.Content.ReadAsStringAsync().Result); + string body = response.Content == null ? string.Empty + : FormatString(response.Content.ReadAsStringAsync().Result); return GetHttpResponseLog( response.StatusCode.ToString(), @@ -308,7 +300,8 @@ public static string GetLog(HttpResponseMessage response) public static string GetLog(HttpRequestMessage request) { - string body = request.Content == null ? string.Empty : FormatString(request.Content.ReadAsStringAsync().Result); + string body = request.Content == null ? string.Empty + : FormatString(request.Content.ReadAsStringAsync().Result); return GetHttpRequestLog( request.Method.ToString(), @@ -321,11 +314,11 @@ public static string FormatString(string content) { if (CloudException.IsXml(content)) { - return XmlUtilities.TryFormatXml(content); + return TryFormatXml(content); } else if (CloudException.IsJson(content)) { - return JsonUtilities.TryFormatJson(content); + return TryFormatJson(content); } else { @@ -333,6 +326,34 @@ public static string FormatString(string content) } } + private static string TryFormatJson(string str) + { + try + { + object parsedJson = JsonConvert.DeserializeObject(str); + return JsonConvert.SerializeObject(parsedJson, + Newtonsoft.Json.Formatting.Indented); + } + catch + { + // can't parse JSON, return the original string + return str; + } + } + + private static string TryFormatXml(string content) + { + try + { + XDocument doc = XDocument.Parse(content); + return doc.ToString(); + } + catch (Exception) + { + return content; + } + } + private static WebHeaderCollection ConvertHttpHeadersToWebHeaderCollection(HttpHeaders headers) { WebHeaderCollection webHeaders = new WebHeaderCollection(); @@ -400,6 +421,12 @@ public static string DownloadFile(string uri) return contents; } + /// + /// Pad a string using the given separator string + /// + /// The number of repetitions of the separator + /// The separator string to use + /// A string containing the given number of repetitions of the separator string public static string GenerateSeparator(int amount, string separator) { StringBuilder result = new StringBuilder(); @@ -422,7 +449,7 @@ public static void EnsureDefaultProfileDirectoryExists() /// Clear the current storage account from the context - guarantees that only one storage account will be active /// at a time. /// - /// Whenter to clear the service management context. + /// Whether to clear the service management context. public static void ClearCurrentStorageAccount(bool clearSMContext = false) { var RMProfile = AzureRmProfileProvider.Instance.Profile; diff --git a/src/Common/Commands.Common/IFileSystem.cs b/src/Common/Commands.Common/IFileSystem.cs new file mode 100644 index 000000000000..7d5eacf1ae00 --- /dev/null +++ b/src/Common/Commands.Common/IFileSystem.cs @@ -0,0 +1,28 @@ + // ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Microsoft.WindowsAzure.Commands.Common +{ + public interface IFileSystem + { + string ReadFile(string path); + void WriteFile(string path, string contents); + } +} diff --git a/src/Common/Commands.Common/IProfileProvider.cs b/src/Common/Commands.Common/IProfileProvider.cs index a0e163e7e63e..df359fa10fc2 100644 --- a/src/Common/Commands.Common/IProfileProvider.cs +++ b/src/Common/Commands.Common/IProfileProvider.cs @@ -12,13 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Common { diff --git a/src/Common/Commands.Common/RecordingTracingInterceptor.cs b/src/Common/Commands.Common/RecordingTracingInterceptor.cs index 3bce7d23a45f..447a9b168b9d 100644 --- a/src/Common/Commands.Common/RecordingTracingInterceptor.cs +++ b/src/Common/Commands.Common/RecordingTracingInterceptor.cs @@ -20,7 +20,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Common; -namespace Microsoft.Azure.Common.Authentication.Models +namespace Microsoft.Azure.ServiceManagemenet.Common.Models { public class RecordingTracingInterceptor : Hyak.Common.ICloudTracingInterceptor { diff --git a/src/Common/Commands.Common/ServiceClientTracingInterceptor.cs b/src/Common/Commands.Common/ServiceClientTracingInterceptor.cs index f31983f778c7..3f23d99c23e2 100644 --- a/src/Common/Commands.Common/ServiceClientTracingInterceptor.cs +++ b/src/Common/Commands.Common/ServiceClientTracingInterceptor.cs @@ -12,68 +12,68 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Rest; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace Microsoft.WindowsAzure.Commands.Common -{ - class ServiceClientTracingInterceptor : IServiceClientTracingInterceptor - { - public ServiceClientTracingInterceptor(ConcurrentQueue queue) - { - MessageQueue = queue; - } +//using Microsoft.Rest; +//using System; +//using System.Collections.Concurrent; +//using System.Collections.Generic; +//using System.Diagnostics; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; +//namespace Microsoft.WindowsAzure.Commands.Common +//{ +// class ServiceClientTracingInterceptor : IServiceClientTracingInterceptor +// { +// public ServiceClientTracingInterceptor(ConcurrentQueue queue) +// { +// MessageQueue = queue; +// } - public ConcurrentQueue MessageQueue { get; private set; } +// public ConcurrentQueue MessageQueue { get; private set; } - public void Configuration(string source, string name, string value) - { - // Ignore - } +// public void Configuration(string source, string name, string value) +// { +// // Ignore +// } - public void EnterMethod(string invocationId, object instance, string method, IDictionary parameters) - { - // Ignore - } +// public void EnterMethod(string invocationId, object instance, string method, IDictionary parameters) +// { +// // Ignore +// } - public void ExitMethod(string invocationId, object returnValue) - { - // Ignore - } +// public void ExitMethod(string invocationId, object returnValue) +// { +// // Ignore +// } - public void Information(string message) - { - MessageQueue.CheckAndEnqueue(message); - } +// public void Information(string message) +// { +// MessageQueue.CheckAndEnqueue(message); +// } - public void ReceiveResponse(string invocationId, System.Net.Http.HttpResponseMessage response) - { - string responseAsString = response == null ? string.Empty : response.AsFormattedString(); - MessageQueue.CheckAndEnqueue(responseAsString); - } +// public void ReceiveResponse(string invocationId, System.Net.Http.HttpResponseMessage response) +// { +// string responseAsString = response == null ? string.Empty : response.AsFormattedString(); +// MessageQueue.CheckAndEnqueue(responseAsString); +// } - public void SendRequest(string invocationId, System.Net.Http.HttpRequestMessage request) - { - string requestAsString = request == null ? string.Empty : request.AsFormattedString(); - MessageQueue.CheckAndEnqueue(requestAsString); - } +// public void SendRequest(string invocationId, System.Net.Http.HttpRequestMessage request) +// { +// string requestAsString = request == null ? string.Empty : request.AsFormattedString(); +// MessageQueue.CheckAndEnqueue(requestAsString); +// } - public void TraceError(string invocationId, Exception exception) - { - // Ignore - } +// public void TraceError(string invocationId, Exception exception) +// { +// // Ignore +// } - public static void RemoveTracingInterceptor(ServiceClientTracingInterceptor interceptor) - { - if (interceptor != null) - { - ServiceClientTracing.RemoveTracingInterceptor(interceptor); - } - } - } -} +// public static void RemoveTracingInterceptor(ServiceClientTracingInterceptor interceptor) +// { +// if (interceptor != null) +// { +// ServiceClientTracing.RemoveTracingInterceptor(interceptor); +// } +// } +// } +//} diff --git a/src/Common/Commands.Common/TestMockSupport.cs b/src/Common/Commands.Common/TestMockSupport.cs index 5d65a3864fb9..6e2a38c518a9 100644 --- a/src/Common/Commands.Common/TestMockSupport.cs +++ b/src/Common/Commands.Common/TestMockSupport.cs @@ -13,10 +13,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using System; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { public class TestMockSupport { + public static string TestExecutionFolder { get; set; } + //a.k.a when you run under Playback mode public static bool RunningMocked { get; set; } @@ -27,5 +30,13 @@ public static void Delay(int milliSeconds) System.Threading.Thread.Sleep(milliSeconds); } } + + public static void Delay(TimeSpan duration) + { + if (!RunningMocked) + { + System.Threading.Thread.Sleep(duration); + } + } } } diff --git a/src/Common/Commands.Common/packages.config b/src/Common/Commands.Common/packages.config index 55769d13f483..64093cf24cf1 100644 --- a/src/Common/Commands.Common/packages.config +++ b/src/Common/Commands.Common/packages.config @@ -4,16 +4,14 @@ - - - - + + \ No newline at end of file diff --git a/src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj b/src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj index 618f841f8a67..892fd91b3b22 100644 --- a/src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj +++ b/src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -14,7 +15,7 @@ 512 ..\..\ true - 3c43a8cf + 64a73b29 true @@ -45,10 +46,6 @@ ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -57,10 +54,10 @@ ..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -70,8 +67,12 @@ False ..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -94,10 +95,6 @@ False ..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - - ..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - @@ -120,12 +117,20 @@ - - ..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll True - - ..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -159,6 +164,10 @@ {cff09e81-1e31-444e-b4d4-a21e946c29e2} Commands.ServiceManagement.Common + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/Common/Commands.ScenarioTests.Common/Common.ps1 b/src/Common/Commands.ScenarioTests.Common/Common.ps1 index 8b46ac170973..abb329545e68 100644 --- a/src/Common/Commands.ScenarioTests.Common/Common.ps1 +++ b/src/Common/Commands.ScenarioTests.Common/Common.ps1 @@ -280,7 +280,7 @@ function Wait-Function do { - Start-Sleep -s 5 + Wait-Seconds 5 $current = [DateTime]::Now $diff = $current - $start $result = &$scriptBlock @@ -337,7 +337,7 @@ function Retry-Function $tries = 1; while(( $result -ne $true) -and ($tries -le $maxTries)) { - Start-Sleep -s $interval + Wait-Seconds $interval $result = Invoke-Command -ScriptBlock $scriptBlock -ArgumentList $argument; $tries++; } diff --git a/src/Common/Commands.ScenarioTests.Common/EnvironmentSetupHelper.cs b/src/Common/Commands.ScenarioTests.Common/EnvironmentSetupHelper.cs index 03e16d6c5363..7b45c5eeeff5 100644 --- a/src/Common/Commands.ScenarioTests.Common/EnvironmentSetupHelper.cs +++ b/src/Common/Commands.ScenarioTests.Common/EnvironmentSetupHelper.cs @@ -13,8 +13,8 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Test; using Microsoft.Azure.Test.HttpRecorder; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; @@ -26,6 +26,7 @@ using System.IO; using System.Management.Automation; using System.Security.Cryptography.X509Certificates; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.ScenarioTest { @@ -264,7 +265,7 @@ public void SetupModules(params string[] modules) public virtual Collection RunPowerShellTest(params string[] scripts) { - using (var powershell = System.Management.Automation.PowerShell.Create()) + using (var powershell = System.Management.Automation.PowerShell.Create(RunspaceMode.NewRunspace)) { SetupPowerShellModules(powershell); @@ -302,13 +303,18 @@ public virtual Collection RunPowerShellTest(params string[] scripts) private void SetupPowerShellModules(System.Management.Automation.PowerShell powershell) { - powershell.AddScript(string.Format("cd \"{0}\"", Environment.CurrentDirectory)); + powershell.AddScript("$error.clear()"); + powershell.AddScript(string.Format("cd \"{0}\"", AppDomain.CurrentDomain.BaseDirectory)); foreach (string moduleName in modules) { - powershell.AddScript(string.Format("Import-Module \".\\{0}\"", moduleName)); + powershell.AddScript(string.Format("Import-Module \"{0}\"", + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, moduleName))); } + powershell.AddScript( + string.Format(@"set-location {0}", AppDomain.CurrentDomain.BaseDirectory)); + powershell.AddScript(string.Format(@"$TestOutputRoot='{0}'", AppDomain.CurrentDomain.BaseDirectory)); powershell.AddScript("$VerbosePreference='Continue'"); powershell.AddScript("$DebugPreference='Continue'"); powershell.AddScript("$ErrorActionPreference='Stop'"); diff --git a/src/Common/Commands.ScenarioTests.Common/Mocks/MockAccessToken.cs b/src/Common/Commands.ScenarioTests.Common/Mocks/MockAccessToken.cs index 4acccb09d00f..991e0fd72cab 100644 --- a/src/Common/Commands.ScenarioTests.Common/Mocks/MockAccessToken.cs +++ b/src/Common/Commands.ScenarioTests.Common/Mocks/MockAccessToken.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/Common/Commands.ScenarioTests.Common/Mocks/MockAccessTokenProvider.cs b/src/Common/Commands.ScenarioTests.Common/Mocks/MockAccessTokenProvider.cs index e94b91ba1538..737efe5cd1ea 100644 --- a/src/Common/Commands.ScenarioTests.Common/Mocks/MockAccessTokenProvider.cs +++ b/src/Common/Commands.ScenarioTests.Common/Mocks/MockAccessTokenProvider.cs @@ -13,14 +13,16 @@ // ---------------------------------------------------------------------------------- using System.Security; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; -using Microsoft.Azure.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { public class MockAccessTokenProvider : ITokenProvider { + public AdalConfiguration AdalConfiguration { get; set; } + private readonly IAccessToken accessToken; public MockAccessTokenProvider(string token) @@ -39,11 +41,13 @@ public MockAccessTokenProvider(string token, string userId) public IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBehavior, string userId, SecureString password, AzureAccount.AccountType credentialType) { + AdalConfiguration = config; return this.accessToken; } - public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string principalId, string certificateThumbprint, AzureAccount.AccountType credentialType) + public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string clientId, string certificateThumbprint, AzureAccount.AccountType credentialType) { + AdalConfiguration = config; return this.accessToken; } } diff --git a/src/Common/Commands.ScenarioTests.Common/Mocks/MockCertificateAuthenticationFactory.cs b/src/Common/Commands.ScenarioTests.Common/Mocks/MockCertificateAuthenticationFactory.cs index 1ac58bb181b8..784f19f446d2 100644 --- a/src/Common/Commands.ScenarioTests.Common/Mocks/MockCertificateAuthenticationFactory.cs +++ b/src/Common/Commands.ScenarioTests.Common/Mocks/MockCertificateAuthenticationFactory.cs @@ -13,8 +13,8 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using System.Security; using System.Security.Cryptography.X509Certificates; diff --git a/src/Common/Commands.ScenarioTests.Common/Mocks/MockClientFactory.cs b/src/Common/Commands.ScenarioTests.Common/Mocks/MockClientFactory.cs index 8859ddc765d2..ff7d51d781db 100644 --- a/src/Common/Commands.ScenarioTests.Common/Mocks/MockClientFactory.cs +++ b/src/Common/Commands.ScenarioTests.Common/Mocks/MockClientFactory.cs @@ -24,11 +24,12 @@ using Hyak.Common; using Microsoft.Azure.Test.HttpRecorder; using Microsoft.Azure.Common; -using Microsoft.Azure.Common.Authentication.Factories; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/Common/Commands.ScenarioTests.Common/Mocks/MockTokenAuthenticationFactory.cs b/src/Common/Commands.ScenarioTests.Common/Mocks/MockTokenAuthenticationFactory.cs index 8186ff38635f..20ec0ee62904 100644 --- a/src/Common/Commands.ScenarioTests.Common/Mocks/MockTokenAuthenticationFactory.cs +++ b/src/Common/Commands.ScenarioTests.Common/Mocks/MockTokenAuthenticationFactory.cs @@ -13,8 +13,8 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Rest; using System; using System.Security; diff --git a/src/Common/Commands.ScenarioTests.Common/PowerShellExtensions.cs b/src/Common/Commands.ScenarioTests.Common/PowerShellExtensions.cs index 13250e4c9b24..4037814fc456 100644 --- a/src/Common/Commands.ScenarioTests.Common/PowerShellExtensions.cs +++ b/src/Common/Commands.ScenarioTests.Common/PowerShellExtensions.cs @@ -48,7 +48,7 @@ public static T GetPowerShellVariable(this System.Management.Automation.Power } /// - /// Gets a powershell enumerable collection from the current session and convernts it back to it's original type. + /// Gets a powershell enumerable collection from the current session and converts it back to it's original type. /// /// The powershell object original type /// The PowerShell instance diff --git a/src/Common/Commands.ScenarioTests.Common/Properties/AssemblyInfo.cs b/src/Common/Commands.ScenarioTests.Common/Properties/AssemblyInfo.cs index 98d020782545..c689c9f799bb 100644 --- a/src/Common/Commands.ScenarioTests.Common/Properties/AssemblyInfo.cs +++ b/src/Common/Commands.ScenarioTests.Common/Properties/AssemblyInfo.cs @@ -34,3 +34,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/Common/Commands.ScenarioTests.Common/SMTestBase.cs b/src/Common/Commands.ScenarioTests.Common/SMTestBase.cs index d0ab6e3b123b..4722f1cdcf05 100644 --- a/src/Common/Commands.ScenarioTests.Common/SMTestBase.cs +++ b/src/Common/Commands.ScenarioTests.Common/SMTestBase.cs @@ -15,9 +15,10 @@ using System; using System.Collections.Generic; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { @@ -30,6 +31,7 @@ public abstract class SMTestBase public SMTestBase() { + System.Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory; BaseSetup(); } diff --git a/src/Common/Commands.ScenarioTests.Common/packages.config b/src/Common/Commands.ScenarioTests.Common/packages.config index 26d23b0a4e08..7c7ea25a2c34 100644 --- a/src/Common/Commands.ScenarioTests.Common/packages.config +++ b/src/Common/Commands.ScenarioTests.Common/packages.config @@ -2,22 +2,24 @@ - - - + + - - + + - - - - + + + + + + + \ No newline at end of file diff --git a/src/Common/Storage/Commands.Storage.ScenarioTest/Commands.Storage.ScenarioTest.csproj b/src/Common/Storage/Commands.Storage.ScenarioTest/Commands.Storage.ScenarioTest.csproj index f25bcc06daff..c8726b04d243 100644 --- a/src/Common/Storage/Commands.Storage.ScenarioTest/Commands.Storage.ScenarioTest.csproj +++ b/src/Common/Storage/Commands.Storage.ScenarioTest/Commands.Storage.ScenarioTest.csproj @@ -1,6 +1,7 @@  - + + Debug AnyCPU @@ -20,8 +21,7 @@ ..\..\..\ true - - + 75466ccb true @@ -55,7 +55,7 @@ True - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -113,6 +113,22 @@ + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + diff --git a/src/Common/Storage/Commands.Storage.ScenarioTest/Properties/AssemblyInfo.cs b/src/Common/Storage/Commands.Storage.ScenarioTest/Properties/AssemblyInfo.cs index 12aaec94e3f7..78ed89d99af4 100644 --- a/src/Common/Storage/Commands.Storage.ScenarioTest/Properties/AssemblyInfo.cs +++ b/src/Common/Storage/Commands.Storage.ScenarioTest/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -42,4 +43,5 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("0.8.5")] -[assembly: AssemblyFileVersion("0.8.5")] \ No newline at end of file +[assembly: AssemblyFileVersion("0.8.5")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/Common/Storage/Commands.Storage.ScenarioTest/packages.config b/src/Common/Storage/Commands.Storage.ScenarioTest/packages.config index 27886b862000..d5cf8dcd9ff8 100644 --- a/src/Common/Storage/Commands.Storage.ScenarioTest/packages.config +++ b/src/Common/Storage/Commands.Storage.ScenarioTest/packages.config @@ -2,7 +2,7 @@ - + @@ -14,5 +14,11 @@ - + + + + + + + \ No newline at end of file diff --git a/src/Common/Storage/Commands.Storage.StorageTestLib/Commands.Storage.StorageTestLib.csproj b/src/Common/Storage/Commands.Storage.StorageTestLib/Commands.Storage.StorageTestLib.csproj index a2406c84a71c..e333c8d2d692 100644 --- a/src/Common/Storage/Commands.Storage.StorageTestLib/Commands.Storage.StorageTestLib.csproj +++ b/src/Common/Storage/Commands.Storage.StorageTestLib/Commands.Storage.StorageTestLib.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,8 +16,7 @@ ..\..\..\ true - - + 512fe96c true @@ -83,6 +83,22 @@ + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + diff --git a/src/Common/Storage/Commands.Storage.StorageTestLib/Properties/AssemblyInfo.cs b/src/Common/Storage/Commands.Storage.StorageTestLib/Properties/AssemblyInfo.cs index fb34ae2056bb..e3af24bbf357 100644 --- a/src/Common/Storage/Commands.Storage.StorageTestLib/Properties/AssemblyInfo.cs +++ b/src/Common/Storage/Commands.Storage.StorageTestLib/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -42,4 +43,5 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("0.8.5")] -[assembly: AssemblyFileVersion("0.8.5")] \ No newline at end of file +[assembly: AssemblyFileVersion("0.8.5")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/Common/Storage/Commands.Storage.StorageTestLib/packages.config b/src/Common/Storage/Commands.Storage.StorageTestLib/packages.config index 5ad6bdbf37d0..5325adbbf98b 100644 --- a/src/Common/Storage/Commands.Storage.StorageTestLib/packages.config +++ b/src/Common/Storage/Commands.Storage.StorageTestLib/packages.config @@ -8,5 +8,11 @@ - + + + + + + + \ No newline at end of file diff --git a/src/Common/Storage/Commands.Storage.Test/Blob/StorageBlobTestBase.cs b/src/Common/Storage/Commands.Storage.Test/Blob/StorageBlobTestBase.cs index 8733daf01b70..a4d1d6572b77 100644 --- a/src/Common/Storage/Commands.Storage.Test/Blob/StorageBlobTestBase.cs +++ b/src/Common/Storage/Commands.Storage.Test/Blob/StorageBlobTestBase.cs @@ -19,8 +19,8 @@ using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Storage.Test.Service; using Microsoft.WindowsAzure.Storage.Blob; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Storage.Test.Blob { diff --git a/src/Common/Storage/Commands.Storage.Test/Commands.Storage.Test.csproj b/src/Common/Storage/Commands.Storage.Test/Commands.Storage.Test.csproj index 58c120ec8b32..752da81ad8b3 100644 --- a/src/Common/Storage/Commands.Storage.Test/Commands.Storage.Test.csproj +++ b/src/Common/Storage/Commands.Storage.Test/Commands.Storage.Test.csproj @@ -1,6 +1,7 @@  - + + Debug AnyCPU @@ -20,8 +21,7 @@ true ..\..\..\ - - + 4d225d1b true @@ -57,10 +57,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -73,9 +69,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -96,12 +93,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -156,6 +153,22 @@ + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + @@ -243,6 +256,10 @@ {cff09e81-1e31-444e-b4d4-a21e946c29e2} Commands.ServiceManagement.Common + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {08cf7da7-0392-4a19-b79b-e1ff67cdb81a} Commands.Storage diff --git a/src/Common/Storage/Commands.Storage.Test/Common/StorageCloudCmdletBaseTest.cs b/src/Common/Storage/Commands.Storage.Test/Common/StorageCloudCmdletBaseTest.cs index 36de52969df7..808c9dc52a9e 100644 --- a/src/Common/Storage/Commands.Storage.Test/Common/StorageCloudCmdletBaseTest.cs +++ b/src/Common/Storage/Commands.Storage.Test/Common/StorageCloudCmdletBaseTest.cs @@ -107,7 +107,7 @@ public void ShouldInitServiceChannelTest() CloudStorageAccount account = CloudStorageAccount.DevelopmentStorageAccount; command.Context = new AzureStorageContext(account); string toss; - Assert.IsFalse(command.TryGetStorageAccount(command.RMProfile, out toss)); + Assert.IsFalse(command.TryGetStorageAccount(command.SMProfile, out toss)); } } } diff --git a/src/Common/Storage/Commands.Storage.Test/Properties/AssemblyInfo.cs b/src/Common/Storage/Commands.Storage.Test/Properties/AssemblyInfo.cs index 729955159e99..2a311b300b4d 100644 --- a/src/Common/Storage/Commands.Storage.Test/Properties/AssemblyInfo.cs +++ b/src/Common/Storage/Commands.Storage.Test/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -43,3 +44,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion(Microsoft.WindowsAzure.Commands.Common.AzurePowerShell.AssemblyVersion)] [assembly: AssemblyFileVersion(Microsoft.WindowsAzure.Commands.Common.AzurePowerShell.AssemblyFileVersion)] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/Common/Storage/Commands.Storage.Test/packages.config b/src/Common/Storage/Commands.Storage.Test/packages.config index 4275b79bf2d5..68a497dfa732 100644 --- a/src/Common/Storage/Commands.Storage.Test/packages.config +++ b/src/Common/Storage/Commands.Storage.Test/packages.config @@ -2,11 +2,11 @@ - + - + @@ -15,12 +15,18 @@ - - + + - + + + + + + + diff --git a/src/Common/Storage/Commands.Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs b/src/Common/Storage/Commands.Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs index 92f8e15d74a6..6277a992c1e1 100644 --- a/src/Common/Storage/Commands.Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs +++ b/src/Common/Storage/Commands.Storage/Blob/Cmdlet/StartAzureStorageBlobCopy.cs @@ -12,6 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; + namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet { using System; @@ -29,7 +31,7 @@ namespace Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet using Microsoft.WindowsAzure.Storage.Blob; using Microsoft.WindowsAzure.Storage.DataMovement; using Microsoft.WindowsAzure.Storage.File; - using Microsoft.Azure.Common.Authentication; + using Azure.ServiceManagemenet.Common; using System.Reflection; [Cmdlet(VerbsLifecycle.Start, StorageNouns.CopyBlob, ConfirmImpact = ConfirmImpact.High, DefaultParameterSetName = ContainerNameParameterSet), @@ -600,8 +602,8 @@ public void OnImport() { try { - System.Management.Automation.PowerShell invoker = null; - invoker = System.Management.Automation.PowerShell.Create(RunspaceMode.CurrentRunspace); + PowerShell invoker = null; + invoker = PowerShell.Create(RunspaceMode.CurrentRunspace); invoker.AddScript(File.ReadAllText(FileUtilities.GetContentFilePath( Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "AzureStorageStartup.ps1"))); diff --git a/src/Common/Storage/Commands.Storage/Commands.Storage.csproj b/src/Common/Storage/Commands.Storage/Commands.Storage.csproj index de06b915084c..2d40ef1dcba0 100644 --- a/src/Common/Storage/Commands.Storage/Commands.Storage.csproj +++ b/src/Common/Storage/Commands.Storage/Commands.Storage.csproj @@ -49,10 +49,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -85,12 +81,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -281,6 +277,14 @@ {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common + + {cff09e81-1e31-444e-b4d4-a21e946c29e2} + Commands.ServiceManagement.Common + + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + diff --git a/src/Common/Storage/Commands.Storage/Common/Cmdlet/NewAzureStorageContext.cs b/src/Common/Storage/Commands.Storage/Common/Cmdlet/NewAzureStorageContext.cs index 2a13b7213800..2d916f777492 100644 --- a/src/Common/Storage/Commands.Storage/Common/Cmdlet/NewAzureStorageContext.cs +++ b/src/Common/Storage/Commands.Storage/Common/Cmdlet/NewAzureStorageContext.cs @@ -16,13 +16,14 @@ using System.Globalization; using System.Management.Automation; using System.Security.Permissions; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Auth; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Storage.Common.Cmdlet { diff --git a/src/Common/Storage/Commands.Storage/Common/StorageCloudCmdletBase.cs b/src/Common/Storage/Commands.Storage/Common/StorageCloudCmdletBase.cs index ba329a65caee..4d6b1db45093 100644 --- a/src/Common/Storage/Commands.Storage/Common/StorageCloudCmdletBase.cs +++ b/src/Common/Storage/Commands.Storage/Common/StorageCloudCmdletBase.cs @@ -20,13 +20,12 @@ using System.Net; using System.Threading; using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.Storage.File; using Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel; -using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Blob; using Microsoft.WindowsAzure.Storage.File; @@ -244,7 +243,7 @@ internal AzureStorageContext GetCmdletStorageContext(AzureStorageContext context string storageAccount; try { - if (TryGetStorageAccount(RMProfile, out storageAccount) + if (TryGetStorageAccount(RMProfile, out storageAccount) || TryGetStorageAccount(SMProfile, out storageAccount) || TryGetStorageAccountFromEnvironmentVariable(out storageAccount)) { diff --git a/src/Common/Storage/Commands.Storage/packages.config b/src/Common/Storage/Commands.Storage/packages.config index bfe594a9d55b..53fd826d967a 100644 --- a/src/Common/Storage/Commands.Storage/packages.config +++ b/src/Common/Storage/Commands.Storage/packages.config @@ -2,7 +2,6 @@ - @@ -14,8 +13,8 @@ - - + + diff --git a/src/ResourceManager.ForRefactoringOnly.sln b/src/ResourceManager.ForRefactoringOnly.sln index d1914567a0a7..8aea0bdc591a 100644 --- a/src/ResourceManager.ForRefactoringOnly.sln +++ b/src/ResourceManager.ForRefactoringOnly.sln @@ -135,13 +135,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.DataLakeStore.Test EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.DataLakeAnalytics.Test", "ResourceManager\DataLakeAnalytics\Commands.DataLakeAnalytics.Test\Commands.DataLakeAnalytics.Test.csproj", "{E6122DB1-1466-47EE-8BA0-73F9CA90F826}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Intune", "ResourceManager\Intune\Commands.Intune\Commands.Intune.csproj", "{189B40C3-7505-410A-9E55-7E7671BB2E14}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Intune.Test", "ResourceManager\Intune\Commands.Intune.Test\Commands.Intune.Test.csproj", "{CA5F571B-550B-4BE3-9BA3-06442DF52768}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.AzureStackAdmin", "ResourceManager\AzureStackAdmin\Commands.AzureStackAdmin\Commands.AzureStackAdmin.csproj", "{0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.LogicApp", "ResourceManager\LogicApp\Commands.LogicApp\Commands.LogicApp.csproj", "{FFE4E475-B32C-4F89-9D52-F7CEBF709C74}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.AzureStackStorage", "ResourceManager\AzureStackStorage\Commands.AzureStackStorage\Commands.AzureStackStorage.csproj", "{D4CA0CC1-CD0A-4CE2-A40D-2D8A082D8791}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.LogicApp.Test", "ResourceManager\LogicApp\Commands.LogicApp.Test\Commands.LogicApp.Test.csproj", "{F1F11BB1-592B-45A3-844C-7F8A585AD107}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.AzureStackStorage.Test", "ResourceManager\AzureStackStorage\Commands.AzureStackStorage.Tests\Commands.AzureStackStorage.Test.csproj", "{53ED0604-8774-4B46-BB26-6AA5A6327A7C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -397,22 +397,22 @@ Global {E6122DB1-1466-47EE-8BA0-73F9CA90F826}.Debug|Any CPU.Build.0 = Debug|Any CPU {E6122DB1-1466-47EE-8BA0-73F9CA90F826}.Release|Any CPU.ActiveCfg = Release|Any CPU {E6122DB1-1466-47EE-8BA0-73F9CA90F826}.Release|Any CPU.Build.0 = Release|Any CPU - {189B40C3-7505-410A-9E55-7E7671BB2E14}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {189B40C3-7505-410A-9E55-7E7671BB2E14}.Debug|Any CPU.Build.0 = Debug|Any CPU - {189B40C3-7505-410A-9E55-7E7671BB2E14}.Release|Any CPU.ActiveCfg = Release|Any CPU - {189B40C3-7505-410A-9E55-7E7671BB2E14}.Release|Any CPU.Build.0 = Release|Any CPU - {CA5F571B-550B-4BE3-9BA3-06442DF52768}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CA5F571B-550B-4BE3-9BA3-06442DF52768}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CA5F571B-550B-4BE3-9BA3-06442DF52768}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CA5F571B-550B-4BE3-9BA3-06442DF52768}.Release|Any CPU.Build.0 = Release|Any CPU - {FFE4E475-B32C-4F89-9D52-F7CEBF709C74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FFE4E475-B32C-4F89-9D52-F7CEBF709C74}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FFE4E475-B32C-4F89-9D52-F7CEBF709C74}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FFE4E475-B32C-4F89-9D52-F7CEBF709C74}.Release|Any CPU.Build.0 = Release|Any CPU - {F1F11BB1-592B-45A3-844C-7F8A585AD107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F1F11BB1-592B-45A3-844C-7F8A585AD107}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1F11BB1-592B-45A3-844C-7F8A585AD107}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F1F11BB1-592B-45A3-844C-7F8A585AD107}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU + {0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}.Release|Any CPU.Build.0 = Release|Any CPU + {D4CA0CC1-CD0A-4CE2-A40D-2D8A082D8791}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4CA0CC1-CD0A-4CE2-A40D-2D8A082D8791}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4CA0CC1-CD0A-4CE2-A40D-2D8A082D8791}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4CA0CC1-CD0A-4CE2-A40D-2D8A082D8791}.Release|Any CPU.Build.0 = Release|Any CPU + {53ED0604-8774-4B46-BB26-6AA5A6327A7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {53ED0604-8774-4B46-BB26-6AA5A6327A7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53ED0604-8774-4B46-BB26-6AA5A6327A7C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {53ED0604-8774-4B46-BB26-6AA5A6327A7C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -445,7 +445,6 @@ Global {EA66BF2C-4E5F-42FE-912C-B62AEB588308} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {B0D03ECF-9F25-499A-BE25-D668E0D208AA} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {E6122DB1-1466-47EE-8BA0-73F9CA90F826} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} - {CA5F571B-550B-4BE3-9BA3-06442DF52768} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} - {F1F11BB1-592B-45A3-844C-7F8A585AD107} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} + {53ED0604-8774-4B46-BB26-6AA5A6327A7C} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} EndGlobalSection EndGlobal diff --git a/src/ResourceManager/ApiManagement/.nuget/packages.config b/src/ResourceManager/ApiManagement/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/ApiManagement/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/ApiManagement/ApiManagement.sln b/src/ResourceManager/ApiManagement/ApiManagement.sln index 7844717d3c0c..5551f56475ea 100644 --- a/src/ResourceManager/ApiManagement/ApiManagement.sln +++ b/src/ResourceManager/ApiManagement/ApiManagement.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{95C16AED-FD57-42A0-86C3-2CF4300A4817}" EndProject @@ -34,10 +34,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ServiceManagement. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{DC06858D-05DF-449E-8F69-8B8815864AB1}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -105,6 +102,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/ApiManagementClient.cs b/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/ApiManagementClient.cs index 044d713654c8..6f61b2cd293b 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/ApiManagementClient.cs +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/ApiManagementClient.cs @@ -12,6 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; + namespace Microsoft.Azure.Commands.ApiManagement.ServiceManagement { using System; @@ -24,8 +27,8 @@ namespace Microsoft.Azure.Commands.ApiManagement.ServiceManagement using System.Text.RegularExpressions; using AutoMapper; using Microsoft.Azure.Commands.ApiManagement.ServiceManagement.Models; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using ServiceManagemenet.Common; + using ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.ApiManagement; using Microsoft.Azure.Management.ApiManagement.SmapiModels; using Newtonsoft.Json; diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands.ApiManagement.ServiceManagement.csproj b/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands.ApiManagement.ServiceManagement.csproj index 9f2b1c647b40..ff40cad72bba 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands.ApiManagement.ServiceManagement.csproj +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands.ApiManagement.ServiceManagement.csproj @@ -59,10 +59,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -90,6 +86,14 @@ False ..\..\..\packages\Microsoft.Data.Services.Client.5.6.4\lib\net40\Microsoft.Data.Services.Client.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -104,14 +108,6 @@ False ..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - False ..\..\..\packages\WindowsAzure.Storage.6.1.0\lib\net40\Microsoft.WindowsAzure.Storage.dll @@ -229,6 +225,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65C3A86A-716D-4E7D-AB67-1DB00B3BF72D} Commands.Common.Storage diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/packages.config b/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/packages.config index a338a30cc6b2..a490781ab585 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/packages.config +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/packages.config @@ -3,7 +3,6 @@ - @@ -16,8 +15,8 @@ - - + + diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/Commands.ApiManagement.Test.csproj b/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/Commands.ApiManagement.Test.csproj index 72f0cff7a47c..70164a9d0e01 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/Commands.ApiManagement.Test.csproj +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/Commands.ApiManagement.Test.csproj @@ -1,5 +1,7 @@  + + Debug @@ -13,7 +15,7 @@ 512 ..\..\..\ true - 39896c3d + 5f258b8c true @@ -41,10 +43,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -69,13 +67,13 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -85,12 +83,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -140,12 +138,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -155,6 +161,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.cs b/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.cs index 0d68de164628..ba56c90dd228 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.cs +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.cs @@ -13,10 +13,11 @@ // limitations under the License. using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.ApiManagement.Test.ScenarioTests { - using Microsoft.Azure.Common.Authentication; + using ServiceManagemenet.Common; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.ps1 b/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.ps1 index 52be85f5fe38..5e098a4e90bb 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.ps1 +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.ps1 @@ -361,7 +361,7 @@ Tests ImportApiManagementHostnameCertificate. #> function Test-ImportApiManagementHostnameCertificate { - $certFilePath = ".\testcertificate.pfx"; + $certFilePath = "$TestOutputRoot\testcertificate.pfx"; $certPassword = "powershelltest"; # Setup @@ -448,7 +448,7 @@ Tests SetApiManagementHostnames. #> function Test-SetApiManagementHostnames { - $certFilePath = ".\testcertificate.pfx"; + $certFilePath = "$TestOutputRoot\testcertificate.pfx"; $certPassword = "powershelltest"; $certSubject = "CN=ailn.redmond.corp.microsoft.com" $certThumbprint = "51A702569BADEDB90A75141B070F2D4B5DDFA447" diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/packages.config b/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/packages.config index 05a392db53b4..8ee8f6102e38 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/packages.config +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/packages.config @@ -2,25 +2,29 @@ - - + - - + + - - + + - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement/ApiManagementClient.cs b/src/ResourceManager/ApiManagement/Commands.ApiManagement/ApiManagementClient.cs index a177ab397f47..333dc9f87e91 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement/ApiManagementClient.cs +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement/ApiManagementClient.cs @@ -12,6 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; + namespace Microsoft.Azure.Commands.ApiManagement { using System; @@ -19,11 +22,9 @@ namespace Microsoft.Azure.Commands.ApiManagement using System.IO; using System.Linq; using AutoMapper; - using Microsoft.Azure.Commands.ApiManagement.Models; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; - using Microsoft.Azure.Management.ApiManagement; - using Microsoft.Azure.Management.ApiManagement.Models; + using Models; + using Management.ApiManagement; + using Management.ApiManagement.Models; public class ApiManagementClient { diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands.ApiManagement.csproj b/src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands.ApiManagement.csproj index e92a5fdb3261..27d3d6a22d63 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands.ApiManagement.csproj +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands.ApiManagement.csproj @@ -58,13 +58,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - - - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll True @@ -97,12 +90,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -198,6 +191,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65C3A86A-716D-4E7D-AB67-1DB00B3BF72D} Commands.Common.Storage diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands/AzureApiManagementCmdletBase.cs b/src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands/AzureApiManagementCmdletBase.cs index 82967c297d1a..ab58e4beff87 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands/AzureApiManagementCmdletBase.cs +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement/Commands/AzureApiManagementCmdletBase.cs @@ -59,7 +59,7 @@ protected ApiManagementLongRunningOperation WaitForOperationToComplete(ApiManage var retryAfter = longRunningOperation.RetryAfter ?? LongRunningOperationDefaultTimeout; WriteVerboseWithTimestamp(Resources.VerboseGetOperationStateTimeoutMessage, retryAfter); - Thread.Sleep(retryAfter); + TestMockSupport.Delay(retryAfter); longRunningOperation = Client.GetLongRunningOperationStatus(longRunningOperation); WriteProgress(longRunningOperation); diff --git a/src/ResourceManager/ApiManagement/Commands.ApiManagement/packages.config b/src/ResourceManager/ApiManagement/Commands.ApiManagement/packages.config index a338a30cc6b2..a490781ab585 100644 --- a/src/ResourceManager/ApiManagement/Commands.ApiManagement/packages.config +++ b/src/ResourceManager/ApiManagement/Commands.ApiManagement/packages.config @@ -3,7 +3,6 @@ - @@ -16,8 +15,8 @@ - - + + diff --git a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/Commands.ApiManagement.ServiceManagement.Test.csproj b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/Commands.ApiManagement.ServiceManagement.Test.csproj index 725df5173b4c..f657f447a6a2 100644 --- a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/Commands.ApiManagement.ServiceManagement.Test.csproj +++ b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/Commands.ApiManagement.ServiceManagement.Test.csproj @@ -1,5 +1,7 @@  + + Debug @@ -13,7 +15,7 @@ 512 ..\..\..\ true - 26d9321c + f6969555 true @@ -41,10 +43,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -71,11 +69,11 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -85,12 +83,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -139,12 +137,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -157,6 +163,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/Properties/AssemblyInfo.cs index 421201341f40..536ba10752b3 100644 --- a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -43,3 +44,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/ScenarioTests/ApiManagementTests.cs b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/ScenarioTests/ApiManagementTests.cs index 1d0eb9f14e4b..153541f6ac58 100644 --- a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/ScenarioTests/ApiManagementTests.cs +++ b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/ScenarioTests/ApiManagementTests.cs @@ -12,9 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. +using Microsoft.Azure.Commands.Common.Authentication; + namespace Microsoft.Azure.Commands.ApiManagement.ServiceManagement.Test.ScenarioTests { - using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.ApiManagement; using Microsoft.Azure.Management.Authorization; @@ -26,17 +27,17 @@ namespace Microsoft.Azure.Commands.ApiManagement.ServiceManagement.Test.Scenario using Microsoft.WindowsAzure.Management.Storage; using Xunit; - public class ApiManagementTests : RMTestBase, IUseFixture + public class ApiManagementTests : RMTestBase, IClassFixture { private readonly EnvironmentSetupHelper _helper; private ApiManagementTestsFixture _fixture; - public ApiManagementTests() + public ApiManagementTests(ApiManagementTestsFixture fixture) { + _fixture = fixture; _helper = new EnvironmentSetupHelper(); } - protected void SetupManagementClients() { var apiManagementManagementClient = GetApiManagementManagementClient(); @@ -184,10 +185,5 @@ private void RunPowerShellTest(params string[] scripts) _helper.RunPowerShellTest(scripts); } } - - public void SetFixture(ApiManagementTestsFixture data) - { - this._fixture = data; - } } } \ No newline at end of file diff --git a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/ScenarioTests/ApiManagementTests.ps1 b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/ScenarioTests/ApiManagementTests.ps1 index 7170043705a3..4f60dae06c6a 100644 --- a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/ScenarioTests/ApiManagementTests.ps1 +++ b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/ScenarioTests/ApiManagementTests.ps1 @@ -1126,7 +1126,7 @@ Param($resourceGroupName, $serviceName) Assert-AreEqual 0 $certificates.Count - $certPath = './Resources/testcertificate.pfx' + $certPath = "$TestOutputRoot\Resources\testcertificate.pfx" $certPassword = 'powershelltest' $certThumbprint = '51A702569BADEDB90A75141B070F2D4B5DDFA447' $certSubject = 'CN=ailn.redmond.corp.microsoft.com' diff --git a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/packages.config b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/packages.config index 182b8a529d75..31d7e4395696 100644 --- a/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/packages.config +++ b/src/ResourceManager/ApiManagement/Commands.SMAPI.Test/packages.config @@ -2,26 +2,30 @@ - - - + + - - + + - - + + - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Automation/.nuget/packages.config b/src/ResourceManager/Automation/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Automation/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Automation/Automation.sln b/src/ResourceManager/Automation/Automation.sln index 42bb36b19ca5..c114058a4753 100644 --- a/src/ResourceManager/Automation/Automation.sln +++ b/src/ResourceManager/Automation/Automation.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{95C16AED-FD57-42A0-86C3-2CF4300A4817}" EndProject @@ -16,10 +16,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.Reso EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{39675CD8-25B7-4BC8-BC88-0E709A01FE91}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -51,6 +48,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj b/src/ResourceManager/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj index ca21200047dc..ee5a4c6c8359 100644 --- a/src/ResourceManager/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj +++ b/src/ResourceManager/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj @@ -1,6 +1,7 @@  - + + Debug AnyCPU @@ -18,8 +19,7 @@ ..\..\..\ true - - + 63c7c5d2 true @@ -56,10 +56,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -70,14 +66,15 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -85,12 +82,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -133,12 +130,19 @@ ..\..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -186,6 +190,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Automation/Commands.Automation.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Automation/Commands.Automation.Test/Properties/AssemblyInfo.cs index 3aa7667b4209..75e00fa1767e 100644 --- a/src/ResourceManager/Automation/Commands.Automation.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Automation/Commands.Automation.Test/Properties/AssemblyInfo.cs @@ -15,6 +15,7 @@ using System; using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -45,3 +46,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] [assembly: CLSCompliant(false)] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Automation/Commands.Automation.Test/ScenarioTests/AutomationScenarioTestsBase.cs b/src/ResourceManager/Automation/Commands.Automation.Test/ScenarioTests/AutomationScenarioTestsBase.cs index dff81da7fca9..28b186f11d72 100644 --- a/src/ResourceManager/Automation/Commands.Automation.Test/ScenarioTests/AutomationScenarioTestsBase.cs +++ b/src/ResourceManager/Automation/Commands.Automation.Test/ScenarioTests/AutomationScenarioTestsBase.cs @@ -12,9 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Management.Resources; -using Microsoft.Azure.Subscriptions; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.Azure.Test; using Microsoft.Azure.Management.Automation; diff --git a/src/ResourceManager/Automation/Commands.Automation.Test/packages.config b/src/ResourceManager/Automation/Commands.Automation.Test/packages.config index 41fddcbb49d2..0a0c989983f8 100644 --- a/src/ResourceManager/Automation/Commands.Automation.Test/packages.config +++ b/src/ResourceManager/Automation/Commands.Automation.Test/packages.config @@ -2,21 +2,25 @@ - - - + + - - + + - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Automation/Commands.Automation/Commands.Automation.csproj b/src/ResourceManager/Automation/Commands.Automation/Commands.Automation.csproj index 62bddbcb4b13..d975c5b84217 100644 --- a/src/ResourceManager/Automation/Commands.Automation/Commands.Automation.csproj +++ b/src/ResourceManager/Automation/Commands.Automation/Commands.Automation.csproj @@ -59,10 +59,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Management.Automation.2.0.0\lib\portable-net45+wp8+wpa81+win\Microsoft.Azure.Management.Automation.dll @@ -71,6 +67,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True @@ -83,6 +80,14 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -99,14 +104,6 @@ False ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - @@ -272,6 +269,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Automation/Commands.Automation/Common/AutomationClient.cs b/src/ResourceManager/Automation/Commands.Automation/Common/AutomationClient.cs index 22194c7c10a4..2ec0d85159a3 100644 --- a/src/ResourceManager/Automation/Commands.Automation/Common/AutomationClient.cs +++ b/src/ResourceManager/Automation/Commands.Automation/Common/AutomationClient.cs @@ -26,11 +26,10 @@ using Microsoft.Azure.Commands.Automation.Properties; using Microsoft.Azure.Management.Automation; using Microsoft.Azure.Management.Automation.Models; -using Microsoft.Azure.Common.Authentication.Models; using Newtonsoft.Json; -using Microsoft.Azure.Common.Authentication; using Hyak.Common; - +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using AutomationManagement = Microsoft.Azure.Management.Automation; using AutomationAccount = Microsoft.Azure.Commands.Automation.Model.AutomationAccount; using Module = Microsoft.Azure.Commands.Automation.Model.Module; diff --git a/src/ResourceManager/Automation/Commands.Automation/Common/IAutomationClient.cs b/src/ResourceManager/Automation/Commands.Automation/Common/IAutomationClient.cs index 704bccf7a9d1..83f5fab55b4a 100644 --- a/src/ResourceManager/Automation/Commands.Automation/Common/IAutomationClient.cs +++ b/src/ResourceManager/Automation/Commands.Automation/Common/IAutomationClient.cs @@ -16,10 +16,9 @@ using System.IO; using System.Collections; using System.Collections.Generic; -using System.Runtime.CompilerServices; using System.Security; using Microsoft.Azure.Commands.Automation.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Automation.Common { diff --git a/src/ResourceManager/Automation/Commands.Automation/packages.config b/src/ResourceManager/Automation/Commands.Automation/packages.config index bff955a853b5..6ec3abbf6edc 100644 --- a/src/ResourceManager/Automation/Commands.Automation/packages.config +++ b/src/ResourceManager/Automation/Commands.Automation/packages.config @@ -2,7 +2,6 @@ - @@ -11,8 +10,8 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/.nuget/packages.config b/src/ResourceManager/AzureBackup/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/AzureBackup/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/AzureBackup.sln b/src/ResourceManager/AzureBackup/AzureBackup.sln index 286d3db5dec1..71dea1fd7989 100644 --- a/src/ResourceManager/AzureBackup/AzureBackup.sln +++ b/src/ResourceManager/AzureBackup/AzureBackup.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{95C16AED-FD57-42A0-86C3-2CF4300A4817}" EndProject @@ -16,10 +16,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{1DB65FD0-8A7B-41EF-BB04-258092D68191}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -51,6 +48,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj index eea0a4012b0a..a300c1e4e808 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Commands.AzureBackup.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -14,7 +15,7 @@ 512 ..\..\..\ true - baa2b15b + 59694488 true @@ -35,10 +36,6 @@ 4 - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Management.BackupServices.1.0.5-preview\lib\net40\Microsoft.Azure.Management.BackupServicesManagement.dll @@ -57,10 +54,10 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -70,12 +67,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -117,12 +114,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -141,6 +146,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3436a126-edc9-4060-8952-9a1be34cdd95} Commands.ScenarioTests.ResourceManager.Common diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Properties/AssemblyInfo.cs index 52407357aef0..39527865278d 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/Properties/AssemblyInfo.cs @@ -48,3 +48,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupTestBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupTestBase.cs index 893fa0bbed43..d806949e3339 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupTestBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/ScenarioTests/AzureBackupTestBase.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Management.BackupServices; using Microsoft.Azure.Test; using Microsoft.Azure.Test.HttpRecorder; @@ -165,8 +165,8 @@ public static T GetServiceClient(TestEnvironmentFactory factory, BackupVaultS PropertyInfo property2 = typeof(T).GetProperty("LongRunningOperationRetryTimeout", typeof(int)); if (property1 != (PropertyInfo)null && property2 != (PropertyInfo)null) { - property1.SetValue((object)obj2, (object)0); - property2.SetValue((object)obj2, (object)0); + property1.SetValue((object)obj2, (object)-1); + property2.SetValue((object)obj2, (object)-1); } } return obj2; @@ -205,8 +205,8 @@ public static T GetVaultServiceClient(TestEnvironmentFactory factory, BackupS PropertyInfo property2 = typeof(T).GetProperty("LongRunningOperationRetryTimeout", typeof(int)); if (property1 != (PropertyInfo)null && property2 != (PropertyInfo)null) { - property1.SetValue((object)obj2, (object)0); - property2.SetValue((object)obj2, (object)0); + property1.SetValue((object)obj2, (object)-1); + property2.SetValue((object)obj2, (object)-1); } } return obj2; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/packages.config b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/packages.config index 861b8a267f7f..54146b6027dd 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/packages.config +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup.Test/packages.config @@ -2,22 +2,25 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackUpRestoreBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackUpRestoreBase.cs index 5cbce720bd25..cf291f8b5ae6 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackUpRestoreBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackUpRestoreBase.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/AzureBackupClientAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/AzureBackupClientAdapter.cs index fe67781f9d65..9c44394634e9 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/AzureBackupClientAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/AzureBackupClientAdapter.cs @@ -12,12 +12,12 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Management.BackupServices; using Microsoft.Azure.Management.BackupServices.Models; using System; using System.Net; using System.Threading; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.AzureBackup.ClientAdapter { diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs index 83559355b0a4..19a6e5bc5cb3 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ContainerAdapter.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs index 0fd442e799c4..83214b03c841 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/ItemAdapter.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs index ee8b2d02208c..df15e3ba0ead 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/JobAdapter.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs index fb3077e5b805..7ac9f099b59f 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/OperationStatusAdapter.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs index df17ca032313..70b23ff7a7cf 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupClientAdapter/PolicyAdapter.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs index fc40b032197d..4bc4db9ee510 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupCmdletBase.cs @@ -16,19 +16,18 @@ using Microsoft.Azure.Commands.AzureBackup.ClientAdapter; using Microsoft.Azure.Commands.AzureBackup.Models; using Microsoft.Azure.Commands.AzureBackup.Properties; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.BackupServices; using Microsoft.Azure.Management.BackupServices.Models; -using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Scheduler; using System; using System.Collections.Generic; using System.Management.Automation; using System.Net; -using System.Threading; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using CmdletModel = Microsoft.Azure.Commands.AzureBackup.Models; using Microsoft.Azure.Commands.ResourceManager.Common; +using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets { @@ -173,8 +172,7 @@ internal CSMOperationResult TrackOperation(string resourceGroupName, string reso WriteDebug(String.Format(Resources.OperationStatus, response.Status)); break; } - - Thread.Sleep(checkFrequency); + TestMockSupport.Delay(checkFrequency); } return response; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs index 8a70d8635362..f631eebe59e6 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupContainerCmdletBase.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs index 55a426458cc0..3fb70592c0ab 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupDSCmdletBase.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupItemCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupItemCmdletBase.cs index fdad61ff1125..35c3b42d557e 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupItemCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupItemCmdletBase.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupPolicyCmdletBase.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupPolicyCmdletBase.cs index fd3448384205..8ff6b254a992 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupPolicyCmdletBase.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/AzureBackupPolicyCmdletBase.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureRMBackupJob.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureRMBackupJob.cs index fe31e31976bc..4e32988c8f57 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureRMBackupJob.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Jobs/WaitAzureRMBackupJob.cs @@ -20,6 +20,7 @@ using Mgmt = Microsoft.Azure.Management.BackupServices.Models; using Microsoft.Azure.Commands.AzureBackup.Models; using Microsoft.Azure.Commands.AzureBackup.Properties; +using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets { @@ -133,7 +134,7 @@ public override void ExecuteCmdlet() break; } - System.Threading.Thread.Sleep(30 * 1000); + TestMockSupport.Delay(30 * 1000); } IList finalJobs = new List(); diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index 869841b46df9..f760e0c830ef 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -49,10 +49,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -72,6 +68,14 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -97,14 +101,6 @@ Cmdlets\VaultCredentials\Security.Cryptography.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - @@ -197,7 +193,7 @@ AzureRM.Backup.psd1 PreserveNewest - + Never Designer @@ -225,6 +221,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs index b0fa09138368..c1003c1bb12c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ContainerHelpers.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs index 9980dfcdf7a5..def8c1659b68 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Helpers/ProtectionPolicyHelpers.cs @@ -17,8 +17,8 @@ using System.Collections.Generic; using System.Xml; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Threading; using Hyak.Common; using Microsoft.Azure.Commands.AzureBackup.Properties; diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/packages.config b/src/ResourceManager/AzureBackup/Commands.AzureBackup/packages.config index 754e1cbf9af1..843ab83f79dd 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/packages.config +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/packages.config @@ -2,7 +2,6 @@ - @@ -11,8 +10,8 @@ - - + + diff --git a/src/ResourceManager/AzureBatch/.nuget/packages.config b/src/ResourceManager/AzureBatch/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/AzureBatch/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/AzureBatch/AzureBatch.sln b/src/ResourceManager/AzureBatch/AzureBatch.sln index 2abab9fa05a2..4f20e898953b 100644 --- a/src/ResourceManager/AzureBatch/AzureBatch.sln +++ b/src/ResourceManager/AzureBatch/AzureBatch.sln @@ -22,10 +22,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Co EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{2B087004-8EA2-49CB-A0FF-151CB16B54D6}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,6 +66,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/AzureBatch/Commands.Batch.Test/BatchTestHelpers.cs b/src/ResourceManager/AzureBatch/Commands.Batch.Test/BatchTestHelpers.cs index dbb64ba1046f..9ea903bb7a91 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch.Test/BatchTestHelpers.cs +++ b/src/ResourceManager/AzureBatch/Commands.Batch.Test/BatchTestHelpers.cs @@ -18,6 +18,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.IO; using System.Net; using System.Reflection; using System.Threading.Tasks; @@ -31,8 +32,8 @@ namespace Microsoft.Azure.Commands.Batch.Test /// public static class BatchTestHelpers { - internal const string TestCertificateFileName1 = "Resources\\BatchTestCert01.cer"; - internal const string TestCertificateFileName2 = "Resources\\BatchTestCert02.cer"; + internal static readonly string TestCertificateFileName1 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources\\BatchTestCert01.cer"); + internal static readonly string TestCertificateFileName2 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources\\BatchTestCert02.cer"); internal const string TestCertificateAlgorithm = "sha1"; internal const string TestCertificatePassword = "Passw0rd"; diff --git a/src/ResourceManager/AzureBatch/Commands.Batch.Test/Commands.Batch.Test.csproj b/src/ResourceManager/AzureBatch/Commands.Batch.Test/Commands.Batch.Test.csproj index 1c23b96e273f..73b44af1af56 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch.Test/Commands.Batch.Test.csproj +++ b/src/ResourceManager/AzureBatch/Commands.Batch.Test/Commands.Batch.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\ true - a99b3960 + 41945a72 true @@ -50,10 +51,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -71,11 +68,11 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -97,12 +94,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -162,12 +159,20 @@ False ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -646,6 +651,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/AzureBatch/Commands.Batch.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/AzureBatch/Commands.Batch.Test/Properties/AssemblyInfo.cs index 01521d1531d7..fdd9fcb12c6e 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/AzureBatch/Commands.Batch.Test/Properties/AssemblyInfo.cs @@ -35,3 +35,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/AzureBatch/Commands.Batch.Test/ScenarioTests/BatchController.cs b/src/ResourceManager/AzureBatch/Commands.Batch.Test/ScenarioTests/BatchController.cs index 86ccfbb2ecbf..1daa64b3a5f5 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch.Test/ScenarioTests/BatchController.cs +++ b/src/ResourceManager/AzureBatch/Commands.Batch.Test/ScenarioTests/BatchController.cs @@ -12,7 +12,6 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Batch; @@ -23,6 +22,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.Batch.Test.ScenarioTests { diff --git a/src/ResourceManager/AzureBatch/Commands.Batch.Test/packages.config b/src/ResourceManager/AzureBatch/Commands.Batch.Test/packages.config index 56a29b7c1385..00af38fe7ab0 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch.Test/packages.config +++ b/src/ResourceManager/AzureBatch/Commands.Batch.Test/packages.config @@ -3,15 +3,14 @@ - - - + + @@ -20,15 +19,19 @@ - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/AzureBatch/Commands.Batch/BatchCmdletBase.cs b/src/ResourceManager/AzureBatch/Commands.Batch/BatchCmdletBase.cs index 11115f81bd97..e64e406846a2 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch/BatchCmdletBase.cs +++ b/src/ResourceManager/AzureBatch/Commands.Batch/BatchCmdletBase.cs @@ -15,12 +15,10 @@ using Microsoft.Azure.Batch.Common; using Microsoft.Azure.Batch.Protocol.Models; using Hyak.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.WindowsAzure; -using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json.Linq; using System; using System.Text; +using Microsoft.Azure.Commands.Common.Authentication; using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient; using Microsoft.Azure.Commands.ResourceManager.Common; diff --git a/src/ResourceManager/AzureBatch/Commands.Batch/Commands.Batch.csproj b/src/ResourceManager/AzureBatch/Commands.Batch/Commands.Batch.csproj index 752352fe3a0c..326ee27a2bd9 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch/Commands.Batch.csproj +++ b/src/ResourceManager/AzureBatch/Commands.Batch/Commands.Batch.csproj @@ -51,10 +51,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -64,6 +60,7 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True @@ -84,6 +81,14 @@ False ..\..\..\packages\Microsoft.Data.Services.Client.5.6.4\lib\net40\Microsoft.Data.Services.Client.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -112,14 +117,6 @@ False ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - @@ -344,6 +341,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/AzureBatch/Commands.Batch/Models/BatchClient.cs b/src/ResourceManager/AzureBatch/Commands.Batch/Models/BatchClient.cs index ee40e7a0d6e7..17b344fed277 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch/Models/BatchClient.cs +++ b/src/ResourceManager/AzureBatch/Commands.Batch/Models/BatchClient.cs @@ -12,11 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Batch; using Microsoft.Azure.Management.Resources; using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Batch.Models { diff --git a/src/ResourceManager/AzureBatch/Commands.Batch/packages.config b/src/ResourceManager/AzureBatch/Commands.Batch/packages.config index 6acc16624739..e5bfcaa3f139 100644 --- a/src/ResourceManager/AzureBatch/Commands.Batch/packages.config +++ b/src/ResourceManager/AzureBatch/Commands.Batch/packages.config @@ -3,7 +3,6 @@ - @@ -16,8 +15,8 @@ - - + + diff --git a/src/ResourceManager/AzureStackAdmin/AzureStackAdmin.sln b/src/ResourceManager/AzureStackAdmin/AzureStackAdmin.sln index 02e822dc775a..517129c839ae 100644 --- a/src/ResourceManager/AzureStackAdmin/AzureStackAdmin.sln +++ b/src/ResourceManager/AzureStackAdmin/AzureStackAdmin.sln @@ -10,6 +10,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Co EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.AzureStackAdmin", "Commands.AzureStackAdmin\Commands.AzureStackAdmin.csproj", "{0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -32,6 +34,10 @@ Global {0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}.Debug|Any CPU.Build.0 = Debug|Any CPU {0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}.Release|Any CPU.ActiveCfg = Release|Any CPU {0B02390C-8AA9-4D99-8AA8-2A9D2D39682F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/AdminApiCmdlet.cs b/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/AdminApiCmdlet.cs index a140d5b1a842..59d4ceb08c09 100644 --- a/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/AdminApiCmdlet.cs +++ b/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/AdminApiCmdlet.cs @@ -19,8 +19,8 @@ namespace Microsoft.AzureStack.Commands using System.Net; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Commands.ResourceManager.Common; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure; using Microsoft.AzureStack.Management; diff --git a/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/Commands.AzureStackAdmin.csproj b/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/Commands.AzureStackAdmin.csproj index 004af72f4fc7..e7c94c5617d3 100644 --- a/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/Commands.AzureStackAdmin.csproj +++ b/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/Commands.AzureStackAdmin.csproj @@ -47,6 +47,7 @@ false + False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -55,6 +56,18 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + + + ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll + True + @@ -80,25 +93,17 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - + False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/packages.config b/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/packages.config index 00c10cb245c9..c30e7289f5f6 100644 --- a/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/packages.config +++ b/src/ResourceManager/AzureStackAdmin/Commands.AzureStackAdmin/packages.config @@ -1,11 +1,12 @@  + - - - - + + + + \ No newline at end of file diff --git a/src/ResourceManager/AzureStackStorage/.nuget/packages.config b/src/ResourceManager/AzureStackStorage/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/AzureStackStorage/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/AzureStackStorage/AzureStackStorage.sln b/src/ResourceManager/AzureStackStorage/AzureStackStorage.sln index 531d737e6baa..7c34fe6e0274 100644 --- a/src/ResourceManager/AzureStackStorage/AzureStackStorage.sln +++ b/src/ResourceManager/AzureStackStorage/AzureStackStorage.sln @@ -24,10 +24,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources.Rest", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{7865F5ED-E0F3-45CD-87BA-214FE8A27061}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -75,6 +72,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/Commands.AzureStackStorage.Test.csproj b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/Commands.AzureStackStorage.Test.csproj index 52aef5d3932f..0fe3bd7b5a00 100644 --- a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/Commands.AzureStackStorage.Test.csproj +++ b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/Commands.AzureStackStorage.Test.csproj @@ -1,11 +1,12 @@  - + + Debug AnyCPU - {D4EDAD6F-6A1D-4295-9A88-CD3F69EAD42B} + {53ED0604-8774-4B46-BB26-6AA5A6327A7C} Library Properties Microsoft.AzureStack.Commands.StorageAdmin.Test @@ -16,7 +17,7 @@ ..\..\..\ true {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - d7bcc31d + 1a4458ba true @@ -51,10 +52,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -64,16 +61,17 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False ..\..\..\packages\Microsoft.AzureStack.Management.Storage.0.9.2-preview\lib\net45\Microsoft.AzureStack.Management.Storage.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -86,8 +84,9 @@ False ..\..\..\packages\Microsoft.Data.Services.Client.5.6.4\lib\net40\Microsoft.Data.Services.Client.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True False @@ -125,16 +124,25 @@ + False ..\..\..\packages\System.Spatial.5.6.2\lib\net40\System.Spatial.dll - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -152,6 +160,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common @@ -303,4 +315,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/Properties/AssemblyInfo.cs b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/Properties/AssemblyInfo.cs index 409808df0caf..b712d75fb7e9 100644 --- a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -33,3 +34,4 @@ [assembly: AssemblyVersion(Microsoft.WindowsAzure.Commands.Common.AzurePowerShell.AssemblyVersion)] [assembly: AssemblyFileVersion(Microsoft.WindowsAzure.Commands.Common.AzurePowerShell.AssemblyFileVersion)] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/ScenarioTests/TestsController.cs b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/ScenarioTests/TestsController.cs index 07e41b0a1902..55cbbbed0eb8 100644 --- a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/ScenarioTests/TestsController.cs +++ b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/ScenarioTests/TestsController.cs @@ -40,7 +40,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.Azure.Test; using System; diff --git a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/packages.config b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/packages.config index 6a7452687e4b..ad34fec832df 100644 --- a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/packages.config +++ b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage.Tests/packages.config @@ -2,11 +2,10 @@ - - - + + @@ -16,13 +15,17 @@ - + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/AdminCmdlet.cs b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/AdminCmdlet.cs index feb3bda45a9d..a7e2a99d295e 100644 --- a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/AdminCmdlet.cs +++ b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/AdminCmdlet.cs @@ -18,8 +18,8 @@ using System.Net.Security; using Microsoft.Azure; using Microsoft.Azure.Commands.ResourceManager.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.AzureStack.Management.StorageAdmin; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/Commands.AzureStackStorage.csproj b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/Commands.AzureStackStorage.csproj index 8f5a235bba32..2d8abb91db26 100644 --- a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/Commands.AzureStackStorage.csproj +++ b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/Commands.AzureStackStorage.csproj @@ -54,8 +54,13 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -93,14 +98,6 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - ..\..\..\packages\Microsoft.WindowsAzure.ConfigurationManager.3.2.0\lib\net40\Microsoft.WindowsAzure.Configuration.dll @@ -111,13 +108,14 @@ ..\..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll True - + + False ..\..\..\packages\System.Spatial.5.6.4\lib\net40\System.Spatial.dll @@ -224,6 +222,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/packages.config b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/packages.config index a2089ea273b6..afa7365cda98 100644 --- a/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/packages.config +++ b/src/ResourceManager/AzureStackStorage/Commands.AzureStackStorage/packages.config @@ -2,8 +2,8 @@ - + @@ -14,11 +14,10 @@ + + - - - \ No newline at end of file diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/AccessTokenExtensions.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/AccessTokenExtensions.cs index af313131569a..917012819b7e 100644 --- a/src/ResourceManager/Common/Commands.ResourceManager.Common/AccessTokenExtensions.cs +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/AccessTokenExtensions.cs @@ -14,7 +14,7 @@ using System; using System.Linq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.ResourceManager.Common { diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMCmdlet.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMCmdlet.cs index 238c054030c1..adc3a8611093 100644 --- a/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMCmdlet.cs +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMCmdlet.cs @@ -19,13 +19,15 @@ using System.Management.Automation.Host; using System.Threading; using Microsoft.Azure.Commands.ResourceManager.Common.Properties; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Internal.Resources; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json; using System.Globalization; +using System.Net.Http.Headers; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Rest; namespace Microsoft.Azure.Commands.ResourceManager.Common { @@ -34,6 +36,7 @@ namespace Microsoft.Azure.Commands.ResourceManager.Common /// public abstract class AzureRMCmdlet : AzurePSCmdlet { + protected ServiceClientTracingInterceptor _serviceClientTracingInterceptor; /// /// Static constructor for AzureRMCmdlet. /// @@ -55,7 +58,7 @@ public AzureRMCmdlet() () => new ResourceManagementClient( AzureSession.AuthenticationFactory.GetSubscriptionCloudCredentials(DefaultContext, AzureEnvironment.Endpoint.ResourceManager), DefaultContext.Environment.GetEndpointAsUri(AzureEnvironment.Endpoint.ResourceManager)), - s => _debugMessages.Enqueue(s))); + s => DebugMessages.Enqueue(s))); } /// @@ -150,7 +153,7 @@ protected override void InitializeQosEvent() commandAlias = this.MyInvocation.MyCommand.Name; } - QosEvent = new AzurePSQoSEvent() + _qosEvent = new AzurePSQoSEvent() { CommandName = commandAlias, ModuleName = this.GetType().Assembly.GetName().Name, @@ -162,7 +165,7 @@ protected override void InitializeQosEvent() if (this.MyInvocation != null && this.MyInvocation.BoundParameters != null) { - QosEvent.Parameters = string.Join(" ", + _qosEvent.Parameters = string.Join(" ", this.MyInvocation.BoundParameters.Keys.Select( s => string.Format(CultureInfo.InvariantCulture, "-{0} ***", s))); } @@ -172,12 +175,56 @@ protected override void InitializeQosEvent() this.DefaultProfile.Context.Account != null && this.DefaultProfile.Context.Account.Id != null) { - QosEvent.Uid = MetricHelper.GenerateSha256HashString( + _qosEvent.Uid = MetricHelper.GenerateSha256HashString( this.DefaultProfile.Context.Account.Id.ToString()); } else { - QosEvent.Uid = "defaultid"; + _qosEvent.Uid = "defaultid"; + } + } + + protected override void LogCmdletStartInvocationInfo() + { + base.LogCmdletStartInvocationInfo(); + if (DefaultContext != null && DefaultContext.Account != null + && DefaultContext.Account.Id != null) + { + WriteDebugWithTimestamp(string.Format("using account id '{0}'...", + DefaultContext.Account.Id)); + } + } + + protected override void LogCmdletEndInvocationInfo() + { + base.LogCmdletEndInvocationInfo(); + string message = string.Format("{0} end processing.", this.GetType().Name); + WriteDebugWithTimestamp(message); + } + + protected override void SetupDebuggingTraces() + { + base.SetupDebuggingTraces(); + _serviceClientTracingInterceptor = _serviceClientTracingInterceptor + ?? new ServiceClientTracingInterceptor(DebugMessages); + ServiceClientTracing.AddTracingInterceptor(_serviceClientTracingInterceptor); + } + + protected override void TearDownDebuggingTraces() + { + ServiceClientTracingInterceptor.RemoveTracingInterceptor(_serviceClientTracingInterceptor); + _serviceClientTracingInterceptor = null; + base.TearDownDebuggingTraces(); + } + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + if (disposing && _serviceClientTracingInterceptor != null) + { + ServiceClientTracingInterceptor.RemoveTracingInterceptor(_serviceClientTracingInterceptor); + _serviceClientTracingInterceptor = null; + AzureSession.ClientFactory.RemoveHandler(typeof(RPRegistrationDelegatingHandler)); } } } diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMProfileExtensions.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMProfileExtensions.cs index e2dc5eed060c..eddf56819c24 100644 --- a/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMProfileExtensions.cs +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRMProfileExtensions.cs @@ -13,12 +13,8 @@ // ---------------------------------------------------------------------------------- using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.ResourceManager.Common.Properties; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.IdentityModel.Clients.ActiveDirectory; namespace Microsoft.Azure.Commands.ResourceManager.Common diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRmProfileProvider.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRmProfileProvider.cs new file mode 100644 index 000000000000..46cd4fd11acb --- /dev/null +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/AzureRmProfileProvider.cs @@ -0,0 +1,54 @@ +////// ---------------------------------------------------------------------------------- +//// +//// Copyright Microsoft Corporation +//// Licensed under the Apache License, Version 2.0 (the "License"); +//// you may not use this file except in compliance with the License. +//// You may obtain a copy of the License at +//// http://www.apache.org/licenses/LICENSE-2.0 +//// Unless required by applicable law or agreed to in writing, software +//// distributed under the License is distributed on an "AS IS" BASIS, +//// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +//// See the License for the specific language governing permissions and +//// limitations under the License. +//// ---------------------------------------------------------------------------------- + +//using Microsoft.Azure.Commands.Common.Authentication; +//using Microsoft.Azure.Commands.Common.Authentication.Models; + +//namespace Microsoft.WindowsAzure.Commands.Common +//{ +// public class AzureRmProfileProvider : IProfileProvider +// { +// private AzureRMProfile _profile; + +// static AzureRmProfileProvider() +// { +// Instance = new AzureRmProfileProvider(); +// } + +// private AzureRmProfileProvider() +// { +// _profile = new AzureRMProfile(); +// } + +// public static AzureRmProfileProvider Instance { get; private set; } +// public AzureRMProfile Profile +// { +// get { return _profile; } +// set +// { +// _profile = value; +// } +// } + +// public void SetTokenCacheForProfile(AzureRMProfile profile) +// { + +// } + +// public void ResetDefaultProfile() +// { +// _profile = new AzureRMProfile(); +// } +// } +//} diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/Commands.ResourceManager.Common.csproj b/src/ResourceManager/Common/Commands.ResourceManager.Common/Commands.ResourceManager.Common.csproj index 688a606e40a6..04e46664ca57 100644 --- a/src/ResourceManager/Common/Commands.ResourceManager.Common/Commands.ResourceManager.Common.csproj +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/Commands.ResourceManager.Common.csproj @@ -60,14 +60,14 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.14-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + True + False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -76,8 +76,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -96,10 +100,6 @@ False ..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll True @@ -276,6 +276,7 @@ Resources.resx + Designer @@ -289,6 +290,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/DebugStreamTraceListener.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/DebugStreamTraceListener.cs new file mode 100644 index 000000000000..32750300e184 --- /dev/null +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/DebugStreamTraceListener.cs @@ -0,0 +1,51 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.Collections.Concurrent; +using System.Diagnostics; +using Microsoft.IdentityModel.Clients.ActiveDirectory; +using Microsoft.WindowsAzure.Commands.Common; + +namespace Microsoft.Azure.Commands.ResourceManager.Common +{ + public class DebugStreamTraceListener : TraceListener + { + public DebugStreamTraceListener(ConcurrentQueue queue) + { + Messages = queue; + } + + public static void AddAdalTracing(DebugStreamTraceListener listener) + { + AdalTrace.TraceSource.Listeners.Add(listener); + AdalTrace.TraceSource.Switch.Level = SourceLevels.All; + } + + public ConcurrentQueue Messages; + public override void Write(string message) + { + Messages.CheckAndEnqueue(message); + } + + public override void WriteLine(string message) + { + Write(message + "\n"); + } + + public static void RemoveAdalTracing(DebugStreamTraceListener listener) + { + AdalTrace.TraceSource.Listeners.Remove(listener); + } + } +} diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/FileSystemAdapter.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/FileSystemAdapter.cs new file mode 100644 index 000000000000..20454c573027 --- /dev/null +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/FileSystemAdapter.cs @@ -0,0 +1,36 @@ + // ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + + using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.Azure.Commands.Common.Authentication; + +namespace Microsoft.WindowsAzure.Commands.Common +{ + public class FileSystemAdapter : IFileSystem + { + public string ReadFile(string path) + { + return AzureSession.DataStore.ReadFileAsText(path); + } + + public void WriteFile(string path, string contents) + { + AzureSession.DataStore.WriteFile(path, contents); + } + } +} diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/RPRegistrationDelegatingHandler.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/RPRegistrationDelegatingHandler.cs index 62e6f4e8cdca..1eeae98c8b5b 100644 --- a/src/ResourceManager/Common/Commands.ResourceManager.Common/RPRegistrationDelegatingHandler.cs +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/RPRegistrationDelegatingHandler.cs @@ -22,7 +22,7 @@ using Microsoft.Azure.Management.Internal.Resources.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; -namespace Microsoft.Azure.Common.Authentication.Models +namespace Microsoft.Azure.Commands.Common.Authentication.Models { public class RPRegistrationDelegatingHandler : DelegatingHandler, ICloneable { diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/ServiceClientTracingInterceptor.cs b/src/ResourceManager/Common/Commands.ResourceManager.Common/ServiceClientTracingInterceptor.cs new file mode 100644 index 000000000000..9bdb0565cbe7 --- /dev/null +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/ServiceClientTracingInterceptor.cs @@ -0,0 +1,76 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Rest; +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using Microsoft.WindowsAzure.Commands.Common; +namespace Microsoft.Azure.Commands.ResourceManager.Common +{ + public class ServiceClientTracingInterceptor : IServiceClientTracingInterceptor + { + public ServiceClientTracingInterceptor(ConcurrentQueue queue) + { + MessageQueue = queue; + } + + public ConcurrentQueue MessageQueue { get; private set; } + + public void Configuration(string source, string name, string value) + { + // Ignore + } + + public void EnterMethod(string invocationId, object instance, string method, IDictionary parameters) + { + // Ignore + } + + public void ExitMethod(string invocationId, object returnValue) + { + // Ignore + } + + public void Information(string message) + { + MessageQueue.CheckAndEnqueue(message); + } + + public void ReceiveResponse(string invocationId, System.Net.Http.HttpResponseMessage response) + { + string responseAsString = response == null ? string.Empty : response.AsFormattedString(); + MessageQueue.CheckAndEnqueue(responseAsString); + } + + public void SendRequest(string invocationId, System.Net.Http.HttpRequestMessage request) + { + string requestAsString = request == null ? string.Empty : request.AsFormattedString(); + MessageQueue.CheckAndEnqueue(requestAsString); + } + + public void TraceError(string invocationId, Exception exception) + { + // Ignore + } + + public static void RemoveTracingInterceptor(ServiceClientTracingInterceptor interceptor) + { + if (interceptor != null) + { + ServiceClientTracing.RemoveTracingInterceptor(interceptor); + } + } + } +} diff --git a/src/ResourceManager/Common/Commands.ResourceManager.Common/packages.config b/src/ResourceManager/Common/Commands.ResourceManager.Common/packages.config index d377f32fdab6..ea861073dadd 100644 --- a/src/ResourceManager/Common/Commands.ResourceManager.Common/packages.config +++ b/src/ResourceManager/Common/Commands.ResourceManager.Common/packages.config @@ -4,15 +4,15 @@ - + - - + + \ No newline at end of file diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Commands.ScenarioTests.ResourceManager.Common.csproj b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Commands.ScenarioTests.ResourceManager.Common.csproj index 1a590c371b92..bd0ca39315b6 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Commands.ScenarioTests.ResourceManager.Common.csproj +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Commands.ScenarioTests.ResourceManager.Common.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -14,7 +15,7 @@ 512 ..\..\ true - 3c43a8cf + e5bda5ba true @@ -45,23 +46,19 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - - ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.14-preview\lib\net40\Microsoft.Azure.ResourceManager.dll True False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -71,12 +68,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -121,12 +118,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -158,14 +163,23 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common + + {cff09e81-1e31-444e-b4d4-a21e946c29e2} + Commands.ServiceManagement.Common + {3819d8a7-c62c-4c47-8ddd-0332d9ce1252} Commands.ResourceManager.Common + \ No newline at end of file diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Common.ps1 b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Common.ps1 index 8b46ac170973..abb329545e68 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Common.ps1 +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Common.ps1 @@ -280,7 +280,7 @@ function Wait-Function do { - Start-Sleep -s 5 + Wait-Seconds 5 $current = [DateTime]::Now $diff = $current - $start $result = &$scriptBlock @@ -337,7 +337,7 @@ function Retry-Function $tries = 1; while(( $result -ne $true) -and ($tries -le $maxTries)) { - Start-Sleep -s $interval + Wait-Seconds $interval $result = Invoke-Command -ScriptBlock $scriptBlock -ArgumentList $argument; $tries++; } diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/EnvironmentSetupHelper.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/EnvironmentSetupHelper.cs index 71d7ea8b8e83..9ffaf56104bd 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/EnvironmentSetupHelper.cs +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/EnvironmentSetupHelper.cs @@ -13,9 +13,6 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure; -using Microsoft.Azure.Commands.ResourceManager.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Test; using Microsoft.Azure.Test.HttpRecorder; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; @@ -29,6 +26,9 @@ using System.Management.Automation; using System.Reflection; using System.Security.Cryptography.X509Certificates; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Common; namespace Microsoft.WindowsAzure.Commands.ScenarioTest @@ -303,9 +303,9 @@ public void SetupModules(params string[] modules) public virtual Collection RunPowerShellTest(params string[] scripts) { - using (var powershell = System.Management.Automation.PowerShell.Create()) + using (var powershell = System.Management.Automation.PowerShell.Create(RunspaceMode.NewRunspace)) { - SetupPowerShellModules(powershell); + SetupPowerShellModules(powershell); Collection output = null; for (int i = 0; i < scripts.Length; ++i) @@ -341,15 +341,20 @@ public virtual Collection RunPowerShellTest(params string[] scripts) private void SetupPowerShellModules(System.Management.Automation.PowerShell powershell) { - powershell.AddScript(string.Format("Write-Debug \"current directory: {0}\"", Directory.GetCurrentDirectory())); + powershell.AddScript("$error.clear()"); + powershell.AddScript(string.Format("Write-Debug \"current directory: {0}\"", AppDomain.CurrentDomain.BaseDirectory)); powershell.AddScript(string.Format("Write-Debug \"current executing assembly: {0}\"", Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))); - powershell.AddScript(string.Format("cd \"{0}\"", Directory.GetCurrentDirectory())); + powershell.AddScript(string.Format("cd \"{0}\"", AppDomain.CurrentDomain.BaseDirectory)); foreach (string moduleName in modules) { - powershell.AddScript(string.Format("Import-Module \".\\{0}\"", moduleName)); + powershell.AddScript(string.Format("Import-Module \"{0}\"", + Path.Combine(AppDomain.CurrentDomain.BaseDirectory,moduleName))); } + powershell.AddScript( + string.Format(@"set-location {0}", AppDomain.CurrentDomain.BaseDirectory)); + powershell.AddScript(string.Format(@"$TestOutputRoot='{0}'", AppDomain.CurrentDomain.BaseDirectory)); powershell.AddScript("$VerbosePreference='Continue'"); powershell.AddScript("$DebugPreference='Continue'"); powershell.AddScript("$ErrorActionPreference='Stop'"); diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockAccessToken.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockAccessToken.cs index 47bf4b27e527..7e5f47d499ad 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockAccessToken.cs +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockAccessToken.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockAccessTokenProvider.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockAccessTokenProvider.cs index e94b91ba1538..fdf696ffb4c2 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockAccessTokenProvider.cs +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockAccessTokenProvider.cs @@ -13,9 +13,9 @@ // ---------------------------------------------------------------------------------- using System.Security; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; -using Microsoft.Azure.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { @@ -42,9 +42,16 @@ public IAccessToken GetAccessToken(AdalConfiguration config, ShowDialog promptBe return this.accessToken; } + IAccessToken ITokenProvider.GetAccessTokenWithCertificate(AdalConfiguration config, string principalId, string certificateThumbprint, + AzureAccount.AccountType credentialType) + { + return GetAccessTokenWithCertificate(config, principalId, certificateThumbprint, credentialType); + } + public IAccessToken GetAccessTokenWithCertificate(AdalConfiguration config, string principalId, string certificateThumbprint, AzureAccount.AccountType credentialType) { return this.accessToken; } + } } \ No newline at end of file diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockCertificateAuthenticationFactory.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockCertificateAuthenticationFactory.cs index 925cb99cea8e..cf366a7b3fe8 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockCertificateAuthenticationFactory.cs +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockCertificateAuthenticationFactory.cs @@ -13,10 +13,10 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using System.Security; using System.Security.Cryptography.X509Certificates; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockClientFactory.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockClientFactory.cs index a50fbbfcd090..7541d4ba702f 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockClientFactory.cs +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockClientFactory.cs @@ -23,12 +23,12 @@ using System.Threading.Tasks; using Hyak.Common; using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.Azure.Common; -using Microsoft.Azure.Common.Authentication.Factories; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication; using Microsoft.Azure; using System.IO; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockTokenAuthenticationFactory.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockTokenAuthenticationFactory.cs index 96e05c53f3ee..255e57e4a6ea 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockTokenAuthenticationFactory.cs +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Mocks/MockTokenAuthenticationFactory.cs @@ -13,11 +13,11 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Rest; using System; using System.Security; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Common.Test.Mocks { diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/ProfileClient.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/ProfileClient.cs new file mode 100644 index 000000000000..2c93654794db --- /dev/null +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/ProfileClient.cs @@ -0,0 +1,1133 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Security; +using System.Security.Cryptography.X509Certificates; +using Hyak.Common; +using Microsoft.Azure; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.WindowsAzure.Commands.Common; +using Microsoft.WindowsAzure.Commands.Common.Properties; +using Microsoft.WindowsAzure.Commands.Utilities.Common; +using Microsoft.WindowsAzure.Subscriptions; + +namespace Microsoft.WindowsAzure.Commands.ScenarioTest +{ + /// + /// Convenience client for azure profile and subscriptions. + /// + public class ProfileClient + { + public AzureSMProfile Profile { get; private set; } + + public Action WarningLog; + + public Action DebugLog; + + private void WriteDebugMessage(string message) + { + if (DebugLog != null) + { + DebugLog(message); + } + } + + private void WriteWarningMessage(string message) + { + if (WarningLog != null) + { + WarningLog(message); + } + } + + private void UpgradeProfile() + { + string oldProfileFilePath = Path.Combine(AzureSession.ProfileDirectory, AzureSession.OldProfileFile); + string oldProfileFilePathBackup = Path.Combine(AzureSession.ProfileDirectory, AzureSession.OldProfileFileBackup); + string newProfileFilePath = Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile); + if (AzureSession.DataStore.FileExists(oldProfileFilePath)) + { + string oldProfilePath = Path.Combine(AzureSession.ProfileDirectory, + AzureSession.OldProfileFile); + + try + { + // Try to backup old profile + try + { + AzureSession.DataStore.CopyFile(oldProfilePath, oldProfileFilePathBackup); + } + catch + { + // Ignore any errors here + } + + AzureSMProfile oldProfile = new AzureSMProfile(oldProfilePath); + + if (AzureSession.DataStore.FileExists(newProfileFilePath)) + { + // Merge profile files + AzureSMProfile newProfile = new AzureSMProfile(newProfileFilePath); + foreach (var environment in newProfile.Environments.Values) + { + oldProfile.Environments[environment.Name] = environment; + } + foreach (var subscription in newProfile.Subscriptions.Values) + { + oldProfile.Subscriptions[subscription.Id] = subscription; + } + AzureSession.DataStore.DeleteFile(newProfileFilePath); + } + + // If there were no load errors - delete backup file + if (oldProfile.ProfileLoadErrors.Count == 0) + { + try + { + AzureSession.DataStore.DeleteFile(oldProfileFilePathBackup); + } + catch + { + // Give up + } + } + + // Save the profile to the disk + oldProfile.Save(); + + // Rename WindowsAzureProfile.xml to WindowsAzureProfile.json + AzureSession.DataStore.RenameFile(oldProfilePath, newProfileFilePath); + + } + catch + { + // Something really bad happened - try to delete the old profile + try + { + AzureSession.DataStore.DeleteFile(oldProfilePath); + } + catch + { + // Ignore any errors + } + } + + // In case that we changed a disk profile, reload it + if (Profile != null && Profile.ProfilePath == newProfileFilePath) + { + Profile = new AzureSMProfile(Profile.ProfilePath); + } + } + } + + public ProfileClient(AzureSMProfile profile) + { + Profile = profile; + WarningLog = (s) => Debug.WriteLine(s); + + try + { + UpgradeProfile(); + } + catch + { + // Should never fail in constructor + } + } + + #region Profile management + + /// + /// Initializes AzureSMProfile using passed in certificate. The certificate + /// is imported into a certificate store. + /// + /// Environment object. + /// Subscription Id + /// Certificate to use with profile. + /// Storage account name (optional). + /// + public void InitializeProfile(AzureEnvironment environment, Guid subscriptionId, X509Certificate2 certificate, + string storageAccount) + { + if (environment == null) + { + throw new ArgumentNullException("environment"); + } + if (certificate == null) + { + throw new ArgumentNullException("certificate"); + } + + // Add environment if not public + if (!AzureEnvironment.PublicEnvironments.ContainsKey(environment.Name)) + { + AddOrSetEnvironment(environment); + } + + // Add account + var azureAccount = new AzureAccount + { + Id = certificate.Thumbprint, + Type = AzureAccount.AccountType.Certificate + }; + azureAccount.Properties[AzureAccount.Property.Subscriptions] = subscriptionId.ToString(); + ImportCertificate(certificate); + AddOrSetAccount(azureAccount); + + // Add subscription + var azureSubscription = new AzureSubscription + { + Id = subscriptionId, + Name = subscriptionId.ToString(), + Environment = environment.Name + }; + if (!string.IsNullOrEmpty(storageAccount)) + { + azureSubscription.Properties[AzureSubscription.Property.StorageAccount] = storageAccount; + } + azureSubscription.Properties[AzureSubscription.Property.Default] = "True"; + azureSubscription.Account = certificate.Thumbprint; + AddOrSetSubscription(azureSubscription); + } + + /// + /// Initializes AzureSMProfile using passed in access token. + /// + /// Environment object. + /// Subscription Id + /// AccessToken to use with profile. + /// AccountId for the new account. + /// Storage account name (optional). + /// + public void InitializeProfile(AzureEnvironment environment, Guid subscriptionId, string accessToken, + string accountId, string storageAccount) + { + if (environment == null) + { + throw new ArgumentNullException("environment"); + } + if (accessToken == null) + { + throw new ArgumentNullException("accessToken"); + } + + // Add environment if not public + if (!AzureEnvironment.PublicEnvironments.ContainsKey(environment.Name)) + { + AddOrSetEnvironment(environment); + } + + // Add account + var azureAccount = new AzureAccount + { + Id = accountId, + Type = AzureAccount.AccountType.AccessToken + }; + azureAccount.Properties[AzureAccount.Property.Subscriptions] = subscriptionId.ToString(); + azureAccount.Properties[AzureAccount.Property.AccessToken] = accessToken; + AddOrSetAccount(azureAccount); + + // Add subscription + var azureSubscription = new AzureSubscription + { + Id = subscriptionId, + Name = subscriptionId.ToString(), + Environment = environment.Name + }; + if (!string.IsNullOrEmpty(storageAccount)) + { + azureSubscription.Properties[AzureSubscription.Property.StorageAccount] = storageAccount; + } + azureSubscription.Properties[AzureSubscription.Property.Default] = "True"; + azureSubscription.Account = accountId; + AddOrSetSubscription(azureSubscription); + } + + /// + /// Initializes AzureSMProfile using passed in account and optional password. + /// + /// Environment object. + /// Subscription Id + /// Azure account with AD username and tenant. + /// AD password (optional). + /// Storage account name (optional). + /// + public void InitializeProfile(AzureEnvironment environment, Guid subscriptionId, AzureAccount account, + SecureString password, string storageAccount) + { + if (environment == null) + { + throw new ArgumentNullException("environment"); + } + if (account == null) + { + throw new ArgumentNullException("account"); + } + + // Add environment if not public + if (!AzureEnvironment.PublicEnvironments.ContainsKey(environment.Name)) + { + AddOrSetEnvironment(environment); + } + + // Add account + var azureAccount = AddAccountAndLoadSubscriptions(account, environment, password); + + // Add subscription + if (!azureAccount.HasSubscription(subscriptionId)) + { + throw new ArgumentException(string.Format(Resources.SubscriptionIdNotFoundMessage, subscriptionId)); + } + var azureSubscription = GetSubscription(subscriptionId); + if (!string.IsNullOrEmpty(storageAccount)) + { + azureSubscription.Properties[AzureSubscription.Property.StorageAccount] = storageAccount; + } + AddOrSetSubscription(azureSubscription); + } + #endregion + + #region Account management + + public AzureAccount AddAccountAndLoadSubscriptions(AzureAccount account, AzureEnvironment environment, SecureString password) + { + if (environment == null) + { + throw new ArgumentNullException("environment"); + } + + if (account == null) + { + throw new ArgumentNullException("account"); + } + + var subscriptionsFromServer = ListSubscriptionsFromServer( + account, + environment, + password, + password == null ? ShowDialog.Always : ShowDialog.Never).ToList(); + + // If account id is null the login failed + if (account.Id != null) + { + // Update back Profile.Subscriptions + foreach (var subscription in subscriptionsFromServer) + { + AddOrSetSubscription(subscription); + } + + if (Profile.DefaultSubscription == null) + { + var firstSubscription = Profile.Subscriptions.Values.FirstOrDefault(); + if (firstSubscription != null) + { + SetSubscriptionAsDefault(firstSubscription.Name, firstSubscription.Account); + } + } + + return Profile.Accounts[account.Id]; + } + else + { + return null; + } + } + + public AzureAccount AddOrSetAccount(AzureAccount account) + { + if (account == null) + { + throw new ArgumentNullException("account", Resources.AccountNeedsToBeSpecified); + } + + if (Profile.Accounts.ContainsKey(account.Id)) + { + Profile.Accounts[account.Id] = + MergeAccountProperties(account, Profile.Accounts[account.Id]); + } + else + { + Profile.Accounts[account.Id] = account; + } + + return Profile.Accounts[account.Id]; + } + + public AzureAccount GetAccountOrDefault(string accountName) + { + if (string.IsNullOrEmpty(accountName)) + { + return Profile.Context.Account; + } + else if (Profile.Accounts.ContainsKey(accountName)) + { + return Profile.Accounts[accountName]; + } + else + { + throw new ArgumentException(string.Format("Account with name '{0}' does not exist.", accountName), "accountName"); + } + } + + public AzureAccount GetAccountOrNull(string accountName) + { + if (string.IsNullOrEmpty(accountName)) + { + throw new ArgumentNullException("accountName"); + } + + if (Profile.Accounts.ContainsKey(accountName)) + { + return Profile.Accounts[accountName]; + } + else + { + return null; + } + } + + public AzureAccount GetAccount(string accountName) + { + var account = GetAccountOrNull(accountName); + + if (account == null) + { + throw new ArgumentException(string.Format("Account with name '{0}' does not exist.", accountName), "accountName"); + } + + return account; + } + + public IEnumerable ListAccounts(string accountName) + { + List accounts = new List(); + + if (!string.IsNullOrEmpty(accountName)) + { + if (Profile.Accounts.ContainsKey(accountName)) + { + accounts.Add(Profile.Accounts[accountName]); + } + } + else + { + accounts = Profile.Accounts.Values.ToList(); + } + + return accounts; + } + + public AzureAccount RemoveAccount(string accountId) + { + if (string.IsNullOrEmpty(accountId)) + { + throw new ArgumentNullException("accountId", Resources.UserNameNeedsToBeSpecified); + } + + if (!Profile.Accounts.ContainsKey(accountId)) + { + throw new ArgumentException(Resources.UserNameIsNotValid, "accountId"); + } + + AzureAccount account = Profile.Accounts[accountId]; + Profile.Accounts.Remove(account.Id); + + foreach (AzureSubscription subscription in account.GetSubscriptions(Profile).ToArray()) + { + if (string.Equals(subscription.Account, accountId, StringComparison.InvariantCultureIgnoreCase)) + { + AzureAccount remainingAccount = GetSubscriptionAccount(subscription.Id); + // There's no default account to use, remove the subscription. + if (remainingAccount == null) + { + // Warn the user if the removed subscription is the default one. + if (subscription.IsPropertySet(AzureSubscription.Property.Default)) + { + Debug.Assert(subscription.Equals(Profile.DefaultSubscription)); + WriteWarningMessage(Resources.RemoveDefaultSubscription); + } + + Profile.Subscriptions.Remove(subscription.Id); + } + else + { + subscription.Account = remainingAccount.Id; + AddOrSetSubscription(subscription); + } + } + } + + return account; + } + + private AzureAccount GetSubscriptionAccount(Guid subscriptionId) + { + List accounts = ListSubscriptionAccounts(subscriptionId); + AzureAccount account = accounts.FirstOrDefault(a => a.Type != AzureAccount.AccountType.Certificate); + + if (account != null) + { + // Found a non-certificate account. + return account; + } + + // Use certificate account if its there. + account = accounts.FirstOrDefault(); + + return account; + } + + #endregion + + #region Subscription management + + public AzureSubscription AddOrSetSubscription(AzureSubscription subscription) + { + if (subscription == null) + { + throw new ArgumentNullException("subscription", Resources.SubscriptionNeedsToBeSpecified); + } + if (subscription.Environment == null) + { + throw new ArgumentNullException("subscription.Environment", Resources.EnvironmentNeedsToBeSpecified); + } + // Validate environment + GetEnvironmentOrDefault(subscription.Environment); + + if (Profile.Subscriptions.ContainsKey(subscription.Id)) + { + Profile.Subscriptions[subscription.Id] = MergeSubscriptionProperties(subscription, Profile.Subscriptions[subscription.Id]); + } + else + { + Debug.Assert(!string.IsNullOrEmpty(subscription.Account)); + if (!Profile.Accounts.ContainsKey(subscription.Account)) + { + throw new KeyNotFoundException(string.Format("The specified account {0} does not exist in profile accounts", subscription.Account)); + } + + Profile.Subscriptions[subscription.Id] = subscription; + } + + return Profile.Subscriptions[subscription.Id]; + } + + public AzureSubscription RemoveSubscription(string name) + { + if (string.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name", Resources.SubscriptionNameNeedsToBeSpecified); + } + + var subscription = Profile.Subscriptions.Values.FirstOrDefault(s => s.Name == name); + + if (subscription == null) + { + throw new ArgumentException(string.Format(Resources.SubscriptionNameNotFoundMessage, name), "name"); + } + else + { + return RemoveSubscription(subscription.Id); + } + } + + public AzureSubscription RemoveSubscription(Guid id) + { + if (!Profile.Subscriptions.ContainsKey(id)) + { + throw new ArgumentException(string.Format(Resources.SubscriptionIdNotFoundMessage, id), "id"); + } + + var subscription = Profile.Subscriptions[id]; + + if (subscription.IsPropertySet(AzureSubscription.Property.Default)) + { + Debug.Assert(Profile.DefaultSubscription == subscription); + WriteWarningMessage(Resources.RemoveDefaultSubscription); + } + + Profile.Subscriptions.Remove(id); + + // Remove this subscription from its associated AzureAccounts + List accounts = ListSubscriptionAccounts(id); + + foreach (AzureAccount account in accounts) + { + account.RemoveSubscription(id); + if (!account.IsPropertySet(AzureAccount.Property.Subscriptions)) + { + Profile.Accounts.Remove(account.Id); + } + } + + return subscription; + } + + public List RefreshSubscriptions(AzureEnvironment environment) + { + if (environment == null) + { + throw new ArgumentNullException("environment"); + } + + var subscriptionsFromServer = ListSubscriptionsFromServerForAllAccounts(environment); + + // Update back Profile.Subscriptions + foreach (var subscription in subscriptionsFromServer) + { + // Resetting back default account + if (Profile.Subscriptions.ContainsKey(subscription.Id)) + { + subscription.Account = Profile.Subscriptions[subscription.Id].Account; + } + AddOrSetSubscription(subscription); + } + + return Profile.Subscriptions.Values.ToList(); + } + + public AzureSubscription GetSubscription(Guid id) + { + if (Profile.Subscriptions.ContainsKey(id)) + { + return Profile.Subscriptions[id]; + } + else + { + throw new ArgumentException(string.Format(Resources.SubscriptionIdNotFoundMessage, id), "id"); + } + } + + public AzureSubscription GetSubscription(string name) + { + AzureSubscription subscription = Profile.Subscriptions.Values + .FirstOrDefault(s => s.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); + + if (subscription != null) + { + return subscription; + } + else + { + throw new ArgumentException(string.Format(Resources.SubscriptionNameNotFoundMessage, name), "name"); + } + } + + public AzureSubscription SetSubscriptionAsDefault(string name, string accountName) + { + if (name == null) + { + throw new ArgumentException(string.Format(Resources.InvalidSubscriptionName, name), "name"); + } + + var subscription = Profile.Subscriptions.Values.FirstOrDefault(s => s.Name == name); + + if (subscription == null) + { + throw new ArgumentException(string.Format(Resources.SubscriptionNameNotFoundMessage, name), "name"); + } + + return SetSubscriptionAsDefault(subscription.Id, accountName); + } + + public AzureSubscription SetSubscriptionAsDefault(Guid id, string accountName) + { + AzureSubscription subscription = GetSubscription(id); + + if (subscription != null) + { + if (subscription.IsPropertySet(AzureSubscription.Property.StorageAccount)) + { + subscription.SetProperty(AzureSubscription.Property.StorageAccount, null); + } + + Profile.DefaultSubscription = subscription; + Profile.DefaultSubscription.Account = accountName; + } + + return subscription; + } + + public void ClearAll() + { + Profile.Accounts.Clear(); + Profile.DefaultSubscription = null; + Profile.Environments.Clear(); + Profile.Subscriptions.Clear(); + Profile.Save(); + + AzureSession.TokenCache.Clear(); + } + + public void ClearDefaultSubscription() + { + Profile.DefaultSubscription = null; + } + + public void ImportCertificate(X509Certificate2 certificate) + { + AzureSession.DataStore.AddCertificate(certificate); + } + + public List ListSubscriptionAccounts(Guid subscriptionId) + { + return Profile.Accounts.Where(a => a.Value.HasSubscription(subscriptionId)) + .Select(a => a.Value).ToList(); + } + + private IEnumerable ListSubscriptionsFromServerForAllAccounts(AzureEnvironment environment) + { + // Get all AD accounts and iterate + var accountNames = Profile.Accounts.Keys; + + List subscriptions = new List(); + + foreach (var accountName in accountNames.ToArray()) + { + var account = Profile.Accounts[accountName]; + + if (account.Type != AzureAccount.AccountType.Certificate) + { + subscriptions.AddRange(ListSubscriptionsFromServer(account, environment, null, ShowDialog.Never)); + } + + AddOrSetAccount(account); + } + + if (subscriptions.Any()) + { + return subscriptions; + } + else + { + return new AzureSubscription[0]; + } + } + + private IEnumerable ListSubscriptionsFromServer(AzureAccount account, AzureEnvironment environment, SecureString password, ShowDialog promptBehavior) + { + string[] tenants = null; + try + { + if (!account.IsPropertySet(AzureAccount.Property.Tenants)) + { + tenants = LoadAccountTenants(account, environment, password, promptBehavior); + } + else + { + var storedTenants = account.GetPropertyAsArray(AzureAccount.Property.Tenants); + if (account.Type == AzureAccount.AccountType.User && storedTenants.Count() == 1) + { + TracingAdapter.Information(Resources.AuthenticatingForSingleTenant, account.Id, storedTenants[0]); + AzureSession.AuthenticationFactory.Authenticate(account, environment, storedTenants[0], password, + promptBehavior); + } + } + } + catch (AadAuthenticationException aadEx) + { + WriteOrThrowAadExceptionMessage(aadEx); + return new AzureSubscription[0]; + } + + try + { + tenants = tenants ?? account.GetPropertyAsArray(AzureAccount.Property.Tenants); + List rdfeSubscriptions = ListServiceManagementSubscriptions(account, environment, + password, ShowDialog.Never, tenants).ToList(); + + // Set user ID + foreach (var subscription in rdfeSubscriptions) + { + account.SetOrAppendProperty(AzureAccount.Property.Subscriptions, subscription.Id.ToString()); + } + + if (rdfeSubscriptions.Any()) + { + return rdfeSubscriptions; + } + else + { + return new AzureSubscription[0]; + } + } + catch (AadAuthenticationException aadEx) + { + WriteOrThrowAadExceptionMessage(aadEx); + return new AzureSubscription[0]; + } + } + + private string[] LoadAccountTenants(AzureAccount account, AzureEnvironment environment, SecureString password, ShowDialog promptBehavior) + { + var commonTenantToken = AzureSession.AuthenticationFactory.Authenticate(account, environment, + AuthenticationFactory.CommonAdTenant, password, promptBehavior); + + using (SubscriptionClient SubscriptionClient = AzureSession.ClientFactory + .CreateCustomClient( + new TokenCloudCredentials(commonTenantToken.AccessToken), + environment.GetEndpointAsUri(AzureEnvironment.Endpoint.ServiceManagement))) + { + var subscriptionListResult = SubscriptionClient.Subscriptions.List(); + return subscriptionListResult.Subscriptions.Select(s => s.ActiveDirectoryTenantId).Distinct().ToArray(); + } + } + + private AzureSubscription MergeSubscriptionProperties(AzureSubscription subscription1, AzureSubscription subscription2) + { + if (subscription1 == null || subscription2 == null) + { + throw new ArgumentNullException("subscription1"); + } + if (subscription1.Id != subscription2.Id) + { + throw new ArgumentException("Subscription Ids do not match."); + } + AzureSubscription mergedSubscription = new AzureSubscription + { + Id = subscription1.Id, + Name = subscription1.Name, + Environment = subscription1.Environment, + State = (subscription1.State != null && + subscription1.State.Equals(subscription2.State, StringComparison.OrdinalIgnoreCase)) ? + subscription1.State: null, + Account = subscription1.Account ?? subscription2.Account + }; + + // Merge all properties + foreach (AzureSubscription.Property property in Enum.GetValues(typeof(AzureSubscription.Property))) + { + string propertyValue = subscription1.GetProperty(property) ?? subscription2.GetProperty(property); + if (propertyValue != null) + { + mergedSubscription.Properties[property] = propertyValue; + } + } + + // Merge RegisteredResourceProviders + var registeredProviders = subscription1.GetPropertyAsArray(AzureSubscription.Property.RegisteredResourceProviders) + .Union(subscription2.GetPropertyAsArray(AzureSubscription.Property.RegisteredResourceProviders), StringComparer.CurrentCultureIgnoreCase); + + mergedSubscription.SetProperty(AzureSubscription.Property.RegisteredResourceProviders, registeredProviders.ToArray()); + + // Merge Tenants + var tenants = subscription1.GetPropertyAsArray(AzureSubscription.Property.Tenants) + .Union(subscription2.GetPropertyAsArray(AzureSubscription.Property.Tenants), StringComparer.CurrentCultureIgnoreCase); + + mergedSubscription.SetProperty(AzureSubscription.Property.Tenants, tenants.ToArray()); + + return mergedSubscription; + } + + private AzureEnvironment MergeEnvironmentProperties(AzureEnvironment environment1, AzureEnvironment environment2) + { + if (environment1 == null || environment2 == null) + { + throw new ArgumentNullException("environment1"); + } + if (!string.Equals(environment1.Name, environment2.Name, StringComparison.InvariantCultureIgnoreCase)) + { + throw new ArgumentException("Environment names do not match."); + } + AzureEnvironment mergedEnvironment = new AzureEnvironment + { + Name = environment1.Name + }; + + // Merge all properties + foreach (AzureEnvironment.Endpoint property in Enum.GetValues(typeof(AzureEnvironment.Endpoint))) + { + string propertyValue = environment1.GetEndpoint(property) ?? environment2.GetEndpoint(property); + if (propertyValue != null) + { + mergedEnvironment.Endpoints[property] = propertyValue; + } + } + + return mergedEnvironment; + } + + private AzureAccount MergeAccountProperties(AzureAccount account1, AzureAccount account2) + { + if (account1 == null || account2 == null) + { + throw new ArgumentNullException("account1"); + } + if (!string.Equals(account1.Id, account2.Id, StringComparison.InvariantCultureIgnoreCase)) + { + throw new ArgumentException("Account Ids do not match."); + } + if (account1.Type != account2.Type) + { + throw new ArgumentException("Account1 types do not match."); + } + AzureAccount mergeAccount = new AzureAccount + { + Id = account1.Id, + Type = account1.Type + }; + + // Merge all properties + foreach (AzureAccount.Property property in Enum.GetValues(typeof(AzureAccount.Property))) + { + string propertyValue = account1.GetProperty(property) ?? account2.GetProperty(property); + if (propertyValue != null) + { + mergeAccount.Properties[property] = propertyValue; + } + } + + // Merge Tenants + var tenants = account1.GetPropertyAsArray(AzureAccount.Property.Tenants) + .Union(account2.GetPropertyAsArray(AzureAccount.Property.Tenants), StringComparer.CurrentCultureIgnoreCase); + + mergeAccount.SetProperty(AzureAccount.Property.Tenants, tenants.ToArray()); + + // Merge Subscriptions + var subscriptions = account1.GetPropertyAsArray(AzureAccount.Property.Subscriptions) + .Union(account2.GetPropertyAsArray(AzureAccount.Property.Subscriptions), StringComparer.CurrentCultureIgnoreCase); + + mergeAccount.SetProperty(AzureAccount.Property.Subscriptions, subscriptions.ToArray()); + + return mergeAccount; + } + + private void CopyAccount(AzureAccount sourceAccount, AzureAccount targetAccount) + { + targetAccount.Id = sourceAccount.Id; + targetAccount.Type = sourceAccount.Type; + } + + private IEnumerable ListServiceManagementSubscriptions(AzureAccount account, AzureEnvironment environment, SecureString password, ShowDialog promptBehavior, string[] tenants) + { + List result = new List(); + + if (!environment.IsEndpointSet(AzureEnvironment.Endpoint.ServiceManagement)) + { + return result; + } + + foreach (var tenant in tenants) + { + try + { + var tenantAccount = new AzureAccount(); + CopyAccount(account, tenantAccount); + var tenantToken = AzureSession.AuthenticationFactory.Authenticate(tenantAccount, environment, tenant, password, ShowDialog.Never); + if (string.Equals(tenantAccount.Id, account.Id, StringComparison.InvariantCultureIgnoreCase)) + { + tenantAccount = account; + } + + tenantAccount.SetOrAppendProperty(AzureAccount.Property.Tenants, new string[] { tenant }); + using (var subscriptionClient = AzureSession.ClientFactory.CreateCustomClient( + new TokenCloudCredentials(tenantToken.AccessToken), + environment.GetEndpointAsUri(AzureEnvironment.Endpoint.ServiceManagement))) + { + var subscriptionListResult = subscriptionClient.Subscriptions.List(); + foreach (var subscription in subscriptionListResult.Subscriptions) + { + // only add the subscription if it's actually in this tenant + if (subscription.ActiveDirectoryTenantId == tenant) + { + AzureSubscription psSubscription = new AzureSubscription + { + Id = new Guid(subscription.SubscriptionId), + Name = subscription.SubscriptionName, + Environment = environment.Name + }; + psSubscription.SetProperty(AzureSubscription.Property.Tenants, + subscription.ActiveDirectoryTenantId); + psSubscription.Account = tenantAccount.Id; + tenantAccount.SetOrAppendProperty(AzureAccount.Property.Subscriptions, + new string[] { psSubscription.Id.ToString() }); + result.Add(psSubscription); + } + } + } + + AddOrSetAccount(tenantAccount); + } + catch (CloudException cEx) + { + WriteOrThrowAadExceptionMessage(cEx); + } + catch (AadAuthenticationException aadEx) + { + WriteOrThrowAadExceptionMessage(aadEx); + } + } + + return result; + } + + private void WriteOrThrowAadExceptionMessage(AadAuthenticationException aadEx) + { + if (aadEx is AadAuthenticationFailedWithoutPopupException) + { + WriteDebugMessage(aadEx.Message); + } + else if (aadEx is AadAuthenticationCanceledException) + { + WriteWarningMessage(aadEx.Message); + } + else + { + throw aadEx; + } + } + + private void WriteOrThrowAadExceptionMessage(CloudException aadEx) + { + WriteDebugMessage(aadEx.Message); + } + + #endregion + + #region Environment management + + public AzureEnvironment GetEnvironmentOrDefault(string name) + { + if (string.IsNullOrEmpty(name) && + Profile.DefaultSubscription == null) + { + return AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud]; + } + else if (string.IsNullOrEmpty(name) && + Profile.DefaultSubscription != null) + { + return Profile.Context.Environment; + } + else if (Profile.Environments.ContainsKey(name)) + { + return Profile.Environments[name]; + } + else + { + throw new ArgumentException(string.Format(Resources.EnvironmentNotFound, name)); + } + } + + public AzureEnvironment GetEnvironment(string name, string serviceEndpoint, string resourceEndpoint) + { + if (serviceEndpoint == null) + { + // Set to invalid value + serviceEndpoint = Guid.NewGuid().ToString(); + } + + if (resourceEndpoint == null) + { + // Set to invalid value + resourceEndpoint = Guid.NewGuid().ToString(); + } + + if (name != null) + { + if (Profile.Environments.ContainsKey(name)) + { + return Profile.Environments[name]; + } + else + { + return null; + } + } + else + { + return Profile.Environments.Values.FirstOrDefault(e => + e.IsEndpointSetToValue(AzureEnvironment.Endpoint.ServiceManagement, serviceEndpoint) || + e.IsEndpointSetToValue(AzureEnvironment.Endpoint.ResourceManager, resourceEndpoint)); + } + } + + public List ListEnvironments(string name) + { + if (string.IsNullOrEmpty(name)) + { + return Profile.Environments.Values.ToList(); + } + else if (Profile.Environments.ContainsKey(name)) + { + return new[] { Profile.Environments[name] }.ToList(); + } + else + { + return new AzureEnvironment[0].ToList(); + } + } + + public AzureEnvironment RemoveEnvironment(string name) + { + if (string.IsNullOrEmpty(name)) + { + throw new ArgumentNullException("name", Resources.EnvironmentNameNeedsToBeSpecified); + } + if (AzureEnvironment.PublicEnvironments.ContainsKey(name)) + { + throw new ArgumentException(Resources.RemovingDefaultEnvironmentsNotSupported, "name"); + } + + if (Profile.Environments.ContainsKey(name)) + { + var environment = Profile.Environments[name]; + var subscriptions = Profile.Subscriptions.Values.Where(s => s.Environment == name).ToArray(); + foreach (var subscription in subscriptions) + { + RemoveSubscription(subscription.Id); + } + Profile.Environments.Remove(name); + return environment; + } + else + { + throw new ArgumentException(string.Format(Resources.EnvironmentNotFound, name), "name"); + } + } + + public AzureEnvironment AddOrSetEnvironment(AzureEnvironment environment) + { + if (environment == null) + { + throw new ArgumentNullException("environment", Resources.EnvironmentNeedsToBeSpecified); + } + + if (AzureEnvironment.PublicEnvironments.ContainsKey(environment.Name)) + { + throw new InvalidOperationException( + string.Format(Resources.ChangingDefaultEnvironmentNotSupported, "environment")); + } + + if (Profile.Environments.ContainsKey(environment.Name)) + { + Profile.Environments[environment.Name] = + MergeEnvironmentProperties(environment, Profile.Environments[environment.Name]); + } + else + { + Profile.Environments[environment.Name] = environment; + } + + return Profile.Environments[environment.Name]; + } + #endregion + } +} \ No newline at end of file diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Properties/AssemblyInfo.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Properties/AssemblyInfo.cs index d11d2de303a7..523fb7d2845d 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/Properties/AssemblyInfo.cs @@ -34,3 +34,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/RMTestBase.cs b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/RMTestBase.cs index 24595f0bfcb0..73c734fce212 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/RMTestBase.cs +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/RMTestBase.cs @@ -14,13 +14,13 @@ using System; using System.Collections.Generic; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; using System.Threading; +using System.IO; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { @@ -33,6 +33,7 @@ public abstract class RMTestBase public RMTestBase() { + System.Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory; BaseSetup(); } diff --git a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/packages.config b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/packages.config index 26d23b0a4e08..4a974a900192 100644 --- a/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/packages.config +++ b/src/ResourceManager/Common/Commands.ScenarioTests.ResourceManager.Common/packages.config @@ -2,22 +2,24 @@ - - - - + + + - - + + - - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Compute/.nuget/packages.config b/src/ResourceManager/Compute/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Compute/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj b/src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj index eacd3be50f80..8683842d8cc4 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj +++ b/src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\..\..\ true - 5620997e + 1017a61d true @@ -49,10 +50,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -66,13 +63,12 @@ ..\..\..\packages\Microsoft.Azure.Management.Authorization.2.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll - - False - ..\..\..\packages\Microsoft.Azure.Management.Compute.11.1.1-prerelease\lib\net45\Microsoft.Azure.Management.Compute.dll + + ..\..\..\packages\Microsoft.Azure.Management.Compute.11.2.0-prerelease\lib\net45\Microsoft.Azure.Management.Compute.dll True - ..\..\..\packages\Microsoft.Azure.Management.Network.3.1.0-preview\lib\net45\Microsoft.Azure.Management.Network.dll + ..\..\..\packages\Microsoft.Azure.Management.Network.3.2.0-preview\lib\net45\Microsoft.Azure.Management.Network.dll True @@ -83,10 +79,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.4.0-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.6.0-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -97,19 +93,16 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.2.5.4\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.2.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll True @@ -152,12 +145,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -184,6 +185,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3819d8a7-c62c-4c47-8ddd-0332d9ce1252} Commands.ResourceManager.Common @@ -378,9 +383,6 @@ Always - - Always - Always diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/Common/ComputeTestController.cs b/src/ResourceManager/Compute/Commands.Compute.Test/Common/ComputeTestController.cs index e3cabc672588..0b64df0253cc 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/Common/ComputeTestController.cs +++ b/src/ResourceManager/Compute/Commands.Compute.Test/Common/ComputeTestController.cs @@ -26,10 +26,11 @@ using System; using System.Collections.Generic; using System.Linq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using RestTestFramework = Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System.IO; namespace Microsoft.Azure.Commands.Compute.Test.ScenarioTests { @@ -102,6 +103,7 @@ public void RunPsTestWorkflow( d.Add("Microsoft.Authorization", null); HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(false, d); + HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); using (RestTestFramework.MockContext context = RestTestFramework.MockContext.Start(callingClassType, mockName)) { this.csmTestFactory = new CSMTestEnvironmentFactory(); diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Compute/Commands.Compute.Test/Properties/AssemblyInfo.cs index 4e3aadc992b0..b2f67c581cde 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Compute/Commands.Compute.Test/Properties/AssemblyInfo.cs @@ -34,3 +34,4 @@ [assembly: AssemblyVersion("1.2.2")] [assembly: AssemblyFileVersion("1.2.2")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/AddVhdTests.ps1 b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/AddVhdTests.ps1 index aa86571b34fa..38314cf6460a 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/AddVhdTests.ps1 +++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/AddVhdTests.ps1 @@ -49,8 +49,7 @@ function Test-AddVhd Write-Output ("Start Uploading... : " + $testItem.vhdName); $vhdUploadContext = Add-AzureRmVhd -ResourceGroupName $rgname -Destination $vhdDestUri -LocalFilePath $vhdLocalPath -NumberOfUploaderThreads 1; - Start-Sleep -s 5; - + Wait-Seconds 5; Write-Output ("Destination Uri :" + $vhdUploadContext.DestinationUri); Write-Output ("Local File :" + $vhdUploadContext.LocalFilePath.FullName); Write-Output ("Uploading Ended."); diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/DiagnosticsExtensionTests.ps1 b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/DiagnosticsExtensionTests.ps1 index d7a70fefb504..9c83d55485f3 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/DiagnosticsExtensionTests.ps1 +++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/DiagnosticsExtensionTests.ps1 @@ -41,7 +41,7 @@ function Test-DiagnosticsExtensionBasic } # Test Set and Get command. It should use the storage account defined in configuration file - Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname -DiagnosticsConfigurationPath '.\ConfigFiles\DiagnosticsExtensionConfig.xml' + Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname -DiagnosticsConfigurationPath "$TestOutputRoot\ConfigFiles\DiagnosticsExtensionConfig.xml" $extension = Get-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname Assert-NotNull $extension @@ -92,7 +92,7 @@ function Test-DiagnosticsExtensionSepcifyStorageAccountName Assert-Null $extension } - Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname -DiagnosticsConfigurationPath '.\ConfigFiles\DiagnosticsExtensionConfig.xml' -StorageAccountName $storagename + Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname -DiagnosticsConfigurationPath "$TestOutputRoot\ConfigFiles\DiagnosticsExtensionConfig.xml" -StorageAccountName $storagename $extension = Get-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname Assert-NotNull $extension @@ -135,7 +135,7 @@ function Test-DiagnosticsExtensionCantListSepcifyStorageAccountKey # Get a random storage account name, which we can't list the key $storagename = 'notexiststorage' Assert-ThrowsContains ` - { Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname -DiagnosticsConfigurationPath '.\ConfigFiles\DiagnosticsExtensionConfig.xml' -StorageAccountName $storagename } ` + { Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname -DiagnosticsConfigurationPath "$TestOutputRoot\ConfigFiles\DiagnosticsExtensionConfig.xml" -StorageAccountName $storagename } ` 'Storage account key' } finally @@ -171,7 +171,7 @@ function Test-DiagnosticsExtensionSupportJsonConfig Assert-Null $extension } - Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname -DiagnosticsConfigurationPath '.\ConfigFiles\DiagnosticsExtensionConfig.json' -StorageAccountName $storagename + Set-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname -DiagnosticsConfigurationPath "$TestOutputRoot\ConfigFiles\DiagnosticsExtensionConfig.json" -StorageAccountName $storagename $extension = Get-AzureRmVMDiagnosticsExtension -ResourceGroupName $rgname -VMName $vmname Assert-NotNull $extension diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/DscExtensionTests.ps1 b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/DscExtensionTests.ps1 index 645cf2e6dcf2..27215a38ec07 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/DscExtensionTests.ps1 +++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/DscExtensionTests.ps1 @@ -56,23 +56,21 @@ function Test-GetAzureRmVMDscExtension $p = Add-AzureRmVMDataDisk -VM $p -Name 'testDataDisk1' -Caching 'ReadOnly' -DiskSizeInGB 10 -Lun 1 -VhdUri $dataDiskVhdUri1 -CreateOption Empty; # OS & Image - $user = "Foo12"; - $password = 'BaR@123' + $rgname; + $user = "localadmin"; + $password = 'Bull_dog1'; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force; $cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword); $computerName = 'test'; $vhdContainer = "https://$stoname.blob.core.windows.net/test"; $p = Set-AzureRmVMOperatingSystem -VM $p -Windows -ComputerName $computerName -Credential $cred -ProvisionVMAgent; - - $imgRef = Get-DefaultCRPWindowsImageOffline; - $p = ($imgRef | Set-AzureRmVMSourceImage -VM $p); - + $p = Set-AzureRmVMSourceImage -VM $p -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2012-R2-Datacenter -Version "latest" + # Virtual Machine New-AzureRmVM -ResourceGroupName $rgname -Location $loc -VM $p; # Test DSC Extension - $version = '2.8'; + $version = '2.13'; # Publish DSC Configuration #TODO: Find a way to mock calls with storage diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineBootDiagnosticsTests.ps1 b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineBootDiagnosticsTests.ps1 index 0b135842b744..6c77533cb61a 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineBootDiagnosticsTests.ps1 +++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineBootDiagnosticsTests.ps1 @@ -128,7 +128,7 @@ function Test-VirtualMachineBootDiagnostics Assert-AreEqual $true $vm1.DiagnosticsProfile.BootDiagnostics.Enabled; Assert-AreEqual $stoaccount.PrimaryEndpoints.Blob $vm1.DiagnosticsProfile.BootDiagnostics.StorageUri; - Start-Sleep -s 600; + Wait-Seconds 600; $localpath = (Get-Item -Path ".\" -Verbose).FullName Get-AzureRmVMBootDiagnosticsData -Windows -ResourceGroupName $rgname -Name $vmname -LocalPath $localpath; @@ -164,7 +164,7 @@ function Test-VirtualMachineBootDiagnostics Assert-AreEqual $true $vm1.DiagnosticsProfile.BootDiagnostics.Enabled; Assert-AreEqual $stoaccount.PrimaryEndpoints.Blob $vm1.DiagnosticsProfile.BootDiagnostics.StorageUri; - Start-Sleep -s 600; + Wait-Seconds 600; $bddata = Get-AzureRmVMBootDiagnosticsData -Linux -ResourceGroupName $rgname -Name $vmname | Out-String; diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineTests.cs b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineTests.cs index 77ce30232c0b..a70a2825153f 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineTests.cs +++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineTests.cs @@ -152,7 +152,7 @@ public void TestVirtualMachineWithEmptyAuc() ComputeTestController.NewInstance.RunPsTest("Test-VirtualMachineWithEmptyAuc"); } - [Fact] + [Fact(Skip="TODO: Implement BYOL in Swagger")] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestVirtualMachineWithBYOL() { diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineTests.ps1 b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineTests.ps1 index c1f3527c0258..801fed830895 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineTests.ps1 +++ b/src/ResourceManager/Compute/Commands.Compute.Test/ScenarioTests/VirtualMachineTests.ps1 @@ -363,7 +363,7 @@ function Test-VirtualMachinePiping Get-AzureRmVM -ResourceGroupName $rgname | Set-AzureRmVM -Generalize; $dest = Get-ComputeTestResourceName; - $templatePath = ".\template.txt"; + $templatePath = "$TestOutputRoot\template.txt"; Get-AzureRmVM -ResourceGroupName $rgname | Save-AzureRmVMImage -DestinationContainerName $dest -VHDNamePrefix 'pslib' -Overwrite -Path $templatePath; $template = Get-Content $templatePath; @@ -943,7 +943,7 @@ function Test-VirtualMachineCapture Set-AzureRmVM -Generalize -ResourceGroupName $rgname -Name $vmname; $dest = Get-ComputeTestResourceName; - $templatePath = ".\template.txt"; + $templatePath = "$TestOutputRoot\template.txt"; Save-AzureRmVMImage -ResourceGroupName $rgname -VMName $vmname -DestinationContainerName $dest -VHDNamePrefix 'pslib' -Overwrite -Path $templatePath; $template = Get-Content $templatePath; Assert-True { $template[1].Contains("$schema"); } diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.DscExtensionTests/TestGetAzureRmVMDscExtension.json b/src/ResourceManager/Compute/Commands.Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.DscExtensionTests/TestGetAzureRmVMDscExtension.json index d1d4f194de89..588200a8caeb 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.DscExtensionTests/TestGetAzureRmVMDscExtension.json +++ b/src/ResourceManager/Compute/Commands.Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.DscExtensionTests/TestGetAzureRmVMDscExtension.json @@ -1,8 +1,8 @@ { "Entries": [ { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute?api-version=2014-04-01-preview", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZT9hcGktdmVyc2lvbj0yMDE0LTA0LTAxLXByZXZpZXc=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute?api-version=2014-04-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZT9hcGktdmVyc2lvbj0yMDE0LTA0LTAxLXByZXZpZXc=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -10,7 +10,7 @@ "Microsoft.Azure.Management.Resources.ResourceManagementClient/2.0.0.0" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute\",\r\n \"namespace\": \"Microsoft.Compute\",\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"availabilitySets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachines\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachines/extensions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachines/diagnosticSettings\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachines/metricDefinitions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets/extensions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets/virtualMachines\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets/networkInterfaces\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets/virtualMachines/networkInterfaces\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/vmSizes\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/usages\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/publishers\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute\",\r\n \"namespace\": \"Microsoft.Compute\",\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"availabilitySets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachines\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachines/extensions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachines/diagnosticSettings\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachines/metricDefinitions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2014-04-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets/extensions\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets/virtualMachines\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets/networkInterfaces\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"virtualMachineScaleSets/virtualMachines/networkInterfaces\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/vmSizes\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/usages\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/publishers\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"North Central US\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"Central US\",\r\n \"North Central US\",\r\n \"South Central US\",\r\n \"North Europe\",\r\n \"West Europe\",\r\n \"East Asia\",\r\n \"Southeast Asia\",\r\n \"Japan East\",\r\n \"Japan West\",\r\n \"Australia East\",\r\n \"Australia Southeast\",\r\n \"Brazil South\"\r\n ],\r\n \"apiVersions\": [\r\n \"2015-06-15\",\r\n \"2015-05-01-preview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", "ResponseHeaders": { "Content-Length": [ "5199" @@ -25,16 +25,16 @@ "no-cache" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14999" + "14967" ], "x-ms-request-id": [ - "25208f24-9c69-4234-98b0-27d3ee0e80b6" + "e5c517c5-672a-4043-abc7-90d56658cbb2" ], "x-ms-correlation-request-id": [ - "25208f24-9c69-4234-98b0-27d3ee0e80b6" + "e5c517c5-672a-4043-abc7-90d56658cbb2" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001550Z:25208f24-9c69-4234-98b0-27d3ee0e80b6" + "CENTRALUS:20160220T020241Z:e5c517c5-672a-4043-abc7-90d56658cbb2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -43,14 +43,14 @@ "no-cache" ], "Date": [ - "Sat, 19 Dec 2015 00:15:49 GMT" + "Sat, 20 Feb 2016 02:02:41 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourcegroups/crptestps6084?api-version=2014-04-01-preview", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlZ3JvdXBzL2NycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourcegroups/crptestps579?api-version=2014-04-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlZ3JvdXBzL2NycHRlc3RwczU3OT9hcGktdmVyc2lvbj0yMDE0LTA0LTAxLXByZXZpZXc=", "RequestMethod": "HEAD", "RequestBody": "", "RequestHeaders": { @@ -61,7 +61,7 @@ "ResponseBody": "", "ResponseHeaders": { "Content-Length": [ - "105" + "104" ], "Content-Type": [ "application/json; charset=utf-8" @@ -76,16 +76,16 @@ "gateway" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14998" + "14966" ], "x-ms-request-id": [ - "4904c93b-7dd0-4e2a-ac40-7831cbc1c575" + "24273b2a-a066-448f-a516-5cba1c88f304" ], "x-ms-correlation-request-id": [ - "4904c93b-7dd0-4e2a-ac40-7831cbc1c575" + "24273b2a-a066-448f-a516-5cba1c88f304" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001550Z:4904c93b-7dd0-4e2a-ac40-7831cbc1c575" + "CENTRALUS:20160220T020242Z:24273b2a-a066-448f-a516-5cba1c88f304" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -94,14 +94,14 @@ "no-cache" ], "Date": [ - "Sat, 19 Dec 2015 00:15:49 GMT" + "Sat, 20 Feb 2016 02:02:41 GMT" ] }, "StatusCode": 404 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourcegroups/crptestps6084?api-version=2014-04-01-preview", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlZ3JvdXBzL2NycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourcegroups/crptestps579?api-version=2014-04-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlZ3JvdXBzL2NycHRlc3RwczU3OT9hcGktdmVyc2lvbj0yMDE0LTA0LTAxLXByZXZpZXc=", "RequestMethod": "PUT", "RequestBody": "{\r\n \"location\": \"East US\"\r\n}", "RequestHeaders": { @@ -115,10 +115,10 @@ "Microsoft.Azure.Management.Resources.ResourceManagementClient/2.0.0.0" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084\",\r\n \"name\": \"crptestps6084\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579\",\r\n \"name\": \"crptestps579\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "179" + "177" ], "Content-Type": [ "application/json; charset=utf-8" @@ -133,13 +133,13 @@ "1199" ], "x-ms-request-id": [ - "151751ef-3283-4e8b-9a85-479c193c0a3e" + "23a34fc3-024d-4903-9228-faec15c81e6a" ], "x-ms-correlation-request-id": [ - "151751ef-3283-4e8b-9a85-479c193c0a3e" + "23a34fc3-024d-4903-9228-faec15c81e6a" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001551Z:151751ef-3283-4e8b-9a85-479c193c0a3e" + "CENTRALUS:20160220T020243Z:23a34fc3-024d-4903-9228-faec15c81e6a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -148,14 +148,14 @@ "no-cache" ], "Date": [ - "Sat, 19 Dec 2015 00:15:51 GMT" + "Sat, 20 Feb 2016 02:02:43 GMT" ] }, "StatusCode": 201 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/resources?api-version=2014-04-01-preview", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcmVzb3VyY2VzP2FwaS12ZXJzaW9uPTIwMTQtMDQtMDEtcHJldmlldw==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/resources?api-version=2014-04-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9yZXNvdXJjZXM/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -178,16 +178,16 @@ "no-cache" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14997" + "14965" ], "x-ms-request-id": [ - "1c7467e5-0916-42c0-b911-c89dabb336ee" + "2e3dd7de-bea6-4fc8-a69c-860321aeb08b" ], "x-ms-correlation-request-id": [ - "1c7467e5-0916-42c0-b911-c89dabb336ee" + "2e3dd7de-bea6-4fc8-a69c-860321aeb08b" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001551Z:1c7467e5-0916-42c0-b911-c89dabb336ee" + "CENTRALUS:20160220T020243Z:2e3dd7de-bea6-4fc8-a69c-860321aeb08b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -196,19 +196,19 @@ "no-cache" ], "Date": [ - "Sat, 19 Dec 2015 00:15:51 GMT" + "Sat, 20 Feb 2016 02:02:43 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualnetworks/vnetcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxuZXR3b3Jrcy92bmV0Y3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualnetworks/vnetcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbG5ldHdvcmtzL3ZuZXRjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "8b77560d-64d9-4253-824e-52a89ecb02fd" + "44ef6e0e-e92e-4956-9767-f5bf2b2487f5" ], "accept-language": [ "en-US" @@ -217,10 +217,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/virtualNetworks/vnetcrptestps6084' under resource group 'crptestps6084' was not found.\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/virtualNetworks/vnetcrptestps579' under resource group 'crptestps579' was not found.\"\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "168" + "166" ], "Content-Type": [ "application/json; charset=utf-8" @@ -235,13 +235,13 @@ "gateway" ], "x-ms-request-id": [ - "33e6e1e9-654c-424a-9cf6-edd8368e9d25" + "9b24aeec-7b70-499b-ab01-7d82e358a8e2" ], "x-ms-correlation-request-id": [ - "33e6e1e9-654c-424a-9cf6-edd8368e9d25" + "9b24aeec-7b70-499b-ab01-7d82e358a8e2" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001553Z:33e6e1e9-654c-424a-9cf6-edd8368e9d25" + "CENTRALUS:20160220T020244Z:9b24aeec-7b70-499b-ab01-7d82e358a8e2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -250,14 +250,14 @@ "no-cache" ], "Date": [ - "Sat, 19 Dec 2015 00:15:52 GMT" + "Sat, 20 Feb 2016 02:02:44 GMT" ] }, "StatusCode": 404 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualnetworks/vnetcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxuZXR3b3Jrcy92bmV0Y3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualnetworks/vnetcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbG5ldHdvcmtzL3ZuZXRjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -265,10 +265,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"vnetcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084\",\r\n \"etag\": \"W/\\\"5abd358d-74ad-4a77-8ce3-081098901a33\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"80df92c1-329a-4062-9fe2-ea1c0683b917\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084/subnets/subnetcrptestps6084\",\r\n \"etag\": \"W/\\\"5abd358d-74ad-4a77-8ce3-081098901a33\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.0.0.0/24\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"vnetcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579\",\r\n \"etag\": \"W/\\\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"0bf61084-115e-41a7-b11c-30f2e72ebbdd\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579/subnets/subnetcrptestps579\",\r\n \"etag\": \"W/\\\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.0.0.0/24\"\r\n }\r\n }\r\n ]\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "1076" + "1069" ], "Content-Type": [ "application/json; charset=utf-8" @@ -280,7 +280,7 @@ "no-cache" ], "x-ms-request-id": [ - "e76ce348-b599-4654-8a48-cffce9ff3ed0" + "3efefae2-0214-4b1c-9ad5-9ca23242e005" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -289,35 +289,35 @@ "no-cache" ], "ETag": [ - "W/\"5abd358d-74ad-4a77-8ce3-081098901a33\"" + "W/\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\"" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14997" + "14980" ], "x-ms-correlation-request-id": [ - "49268a9f-134e-4f24-b662-3a008f34b0d4" + "3f73d5d7-3b64-4e35-8486-ee3c7ba29208" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001606Z:49268a9f-134e-4f24-b662-3a008f34b0d4" + "CENTRALUS:20160220T020317Z:3f73d5d7-3b64-4e35-8486-ee3c7ba29208" ], "Date": [ - "Sat, 19 Dec 2015 00:16:05 GMT" + "Sat, 20 Feb 2016 02:03:16 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualnetworks/vnetcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxuZXR3b3Jrcy92bmV0Y3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualnetworks/vnetcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbG5ldHdvcmtzL3ZuZXRjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "10542f1c-e781-4059-bc97-b3cd816c3eff" + "95653ac3-2c6c-49f1-93a6-44c3c7885d3f" ], "accept-language": [ "en-US" @@ -326,10 +326,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"vnetcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084\",\r\n \"etag\": \"W/\\\"5abd358d-74ad-4a77-8ce3-081098901a33\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"80df92c1-329a-4062-9fe2-ea1c0683b917\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084/subnets/subnetcrptestps6084\",\r\n \"etag\": \"W/\\\"5abd358d-74ad-4a77-8ce3-081098901a33\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.0.0.0/24\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"vnetcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579\",\r\n \"etag\": \"W/\\\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"0bf61084-115e-41a7-b11c-30f2e72ebbdd\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579/subnets/subnetcrptestps579\",\r\n \"etag\": \"W/\\\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.0.0.0/24\"\r\n }\r\n }\r\n ]\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "1076" + "1069" ], "Content-Type": [ "application/json; charset=utf-8" @@ -341,7 +341,7 @@ "no-cache" ], "x-ms-request-id": [ - "1613dd3a-d554-46f7-a928-29a10ea8310a" + "55731169-5510-4884-9c81-45fa04db9d0e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -350,35 +350,35 @@ "no-cache" ], "ETag": [ - "W/\"5abd358d-74ad-4a77-8ce3-081098901a33\"" + "W/\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\"" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14996" + "14979" ], "x-ms-correlation-request-id": [ - "84e7092d-bf54-47d2-be30-162681974abc" + "ab684dee-5460-4ddb-9acc-45023d30473a" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001606Z:84e7092d-bf54-47d2-be30-162681974abc" + "CENTRALUS:20160220T020317Z:ab684dee-5460-4ddb-9acc-45023d30473a" ], "Date": [ - "Sat, 19 Dec 2015 00:16:05 GMT" + "Sat, 20 Feb 2016 02:03:16 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualnetworks/vnetcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxuZXR3b3Jrcy92bmV0Y3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualnetworks/vnetcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbG5ldHdvcmtzL3ZuZXRjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "84e945c8-2b34-4566-b518-09232f9182f2" + "6174f255-040a-44ec-9522-01d8cf82725e" ], "accept-language": [ "en-US" @@ -387,10 +387,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"vnetcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084\",\r\n \"etag\": \"W/\\\"5abd358d-74ad-4a77-8ce3-081098901a33\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"80df92c1-329a-4062-9fe2-ea1c0683b917\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084/subnets/subnetcrptestps6084\",\r\n \"etag\": \"W/\\\"5abd358d-74ad-4a77-8ce3-081098901a33\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.0.0.0/24\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"vnetcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579\",\r\n \"etag\": \"W/\\\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"0bf61084-115e-41a7-b11c-30f2e72ebbdd\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579/subnets/subnetcrptestps579\",\r\n \"etag\": \"W/\\\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"10.0.0.0/24\"\r\n }\r\n }\r\n ]\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "1076" + "1069" ], "Content-Type": [ "application/json; charset=utf-8" @@ -402,7 +402,7 @@ "no-cache" ], "x-ms-request-id": [ - "dea4e105-8e8e-422d-9500-d57ef1129911" + "e4ca8a50-8bd1-44f4-b477-2f458cba37be" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -411,41 +411,41 @@ "no-cache" ], "ETag": [ - "W/\"5abd358d-74ad-4a77-8ce3-081098901a33\"" + "W/\"e426acdc-0d73-485c-86a0-25a5dd35f3a1\"" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14995" + "14978" ], "x-ms-correlation-request-id": [ - "1c65b7d9-aa8d-4c49-b348-0a93f0fd7abb" + "cd8c97f2-3824-4543-bb30-951b1bfce0f3" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001606Z:1c65b7d9-aa8d-4c49-b348-0a93f0fd7abb" + "CENTRALUS:20160220T020317Z:cd8c97f2-3824-4543-bb30-951b1bfce0f3" ], "Date": [ - "Sat, 19 Dec 2015 00:16:05 GMT" + "Sat, 20 Feb 2016 02:03:16 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualnetworks/vnetcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxuZXR3b3Jrcy92bmV0Y3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualnetworks/vnetcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbG5ldHdvcmtzL3ZuZXRjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "PUT", - "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps6084\",\r\n \"properties\": {\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"ipConfigurations\": []\r\n }\r\n }\r\n ]\r\n }\r\n}", + "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps579\",\r\n \"properties\": {\r\n \"addressPrefix\": \"10.0.0.0/24\",\r\n \"ipConfigurations\": []\r\n }\r\n }\r\n ]\r\n }\r\n}", "RequestHeaders": { "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "423" + "422" ], "x-ms-client-request-id": [ - "9cc3d42b-6810-4c04-969e-bc4844c87c64" + "6f3d28a5-3aac-4074-ac8f-a116a685c884" ], "accept-language": [ "en-US" @@ -454,10 +454,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"vnetcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084\",\r\n \"etag\": \"W/\\\"b7c1d684-a595-44f1-8345-6f5ff2a1e80e\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"80df92c1-329a-4062-9fe2-ea1c0683b917\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084/subnets/subnetcrptestps6084\",\r\n \"etag\": \"W/\\\"b7c1d684-a595-44f1-8345-6f5ff2a1e80e\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"addressPrefix\": \"10.0.0.0/24\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"vnetcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579\",\r\n \"etag\": \"W/\\\"c6801d04-1370-4894-b3ea-e3dd0fed06c5\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"0bf61084-115e-41a7-b11c-30f2e72ebbdd\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"10.0.0.0/16\"\r\n ]\r\n },\r\n \"dhcpOptions\": {\r\n \"dnsServers\": [\r\n \"10.1.1.1\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"subnetcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579/subnets/subnetcrptestps579\",\r\n \"etag\": \"W/\\\"c6801d04-1370-4894-b3ea-e3dd0fed06c5\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"addressPrefix\": \"10.0.0.0/24\"\r\n }\r\n }\r\n ]\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "1074" + "1067" ], "Content-Type": [ "application/json; charset=utf-8" @@ -472,10 +472,10 @@ "10" ], "x-ms-request-id": [ - "739dbeef-d1c7-4250-8754-d6a857891c28" + "8cce00fa-9230-4218-8978-af3de329d74e" ], "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Network/locations/eastus/operations/739dbeef-d1c7-4250-8754-d6a857891c28?api-version=2015-06-15" + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Network/locations/eastus/operations/8cce00fa-9230-4218-8978-af3de329d74e?api-version=2015-06-15" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -491,20 +491,20 @@ "1199" ], "x-ms-correlation-request-id": [ - "f6590877-f50e-4d77-af76-d2242eaddeb7" + "f8f71134-2c66-4980-86fe-de9ce472cc63" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001555Z:f6590877-f50e-4d77-af76-d2242eaddeb7" + "CENTRALUS:20160220T020246Z:f8f71134-2c66-4980-86fe-de9ce472cc63" ], "Date": [ - "Sat, 19 Dec 2015 00:15:54 GMT" + "Sat, 20 Feb 2016 02:02:46 GMT" ] }, "StatusCode": 201 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Network/locations/eastus/operations/739dbeef-d1c7-4250-8754-d6a857891c28?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNzM5ZGJlZWYtZDFjNy00MjUwLTg3NTQtZDZhODU3ODkxYzI4P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Network/locations/eastus/operations/8cce00fa-9230-4218-8978-af3de329d74e?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOGNjZTAwZmEtOTIzMC00MjE4LTg5NzgtYWYzZGUzMjlkNzRlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -527,7 +527,7 @@ "no-cache" ], "x-ms-request-id": [ - "d0fd6855-2ac9-4e59-a46a-325f9d01d877" + "6b3394f0-c85c-4edf-a47c-71f6f12dcbb8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -540,28 +540,28 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14998" + "14981" ], "x-ms-correlation-request-id": [ - "53e0ccaa-ce4d-4c1f-9bf8-7a05d376da13" + "a766fa34-5d27-4def-a9de-9f571c8bb8b4" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001605Z:53e0ccaa-ce4d-4c1f-9bf8-7a05d376da13" + "CENTRALUS:20160220T020317Z:a766fa34-5d27-4def-a9de-9f571c8bb8b4" ], "Date": [ - "Sat, 19 Dec 2015 00:16:04 GMT" + "Sat, 20 Feb 2016 02:03:16 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3B1YmlwY3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcHViaXBjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "c2592a9f-2694-4ba9-9281-220f747a727e" + "9663689d-49be-4f72-8318-1029fdaeaee0" ], "accept-language": [ "en-US" @@ -570,10 +570,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/publicIPAddresses/pubipcrptestps6084' under resource group 'crptestps6084' was not found.\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/publicIPAddresses/pubipcrptestps579' under resource group 'crptestps579' was not found.\"\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "171" + "169" ], "Content-Type": [ "application/json; charset=utf-8" @@ -588,13 +588,13 @@ "gateway" ], "x-ms-request-id": [ - "7548db7c-c97e-4e76-8229-c212bd14cb29" + "d687c8c1-eb71-4bed-82ca-7afd59f09090" ], "x-ms-correlation-request-id": [ - "7548db7c-c97e-4e76-8229-c212bd14cb29" + "d687c8c1-eb71-4bed-82ca-7afd59f09090" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001606Z:7548db7c-c97e-4e76-8229-c212bd14cb29" + "CENTRALUS:20160220T020317Z:d687c8c1-eb71-4bed-82ca-7afd59f09090" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -603,14 +603,14 @@ "no-cache" ], "Date": [ - "Sat, 19 Dec 2015 00:16:05 GMT" + "Sat, 20 Feb 2016 02:03:17 GMT" ] }, "StatusCode": 404 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3B1YmlwY3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcHViaXBjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -618,10 +618,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"pubipcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084\",\r\n \"etag\": \"W/\\\"ae5949da-c7ff-4922-88f7-246b0834170d\\\"\",\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"a1f4f4f2-282a-451c-a22d-b92fc2a3358e\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps6084\",\r\n \"fqdn\": \"pubipcrptestps6084.eastus.cloudapp.azure.com\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"pubipcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579\",\r\n \"etag\": \"W/\\\"2d325bd9-e421-49f1-988f-8bdcae96271d\\\"\",\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"d48a7d72-f811-4e0b-bc07-d6a20712a134\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps579\",\r\n \"fqdn\": \"pubipcrptestps579.eastus.cloudapp.azure.com\"\r\n }\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "666" + "661" ], "Content-Type": [ "application/json; charset=utf-8" @@ -633,7 +633,7 @@ "no-cache" ], "x-ms-request-id": [ - "5fd06d80-9afe-47ed-b821-1f197c35b9b8" + "27a3203c-3680-4f97-bfe6-0c704aa18331" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -642,35 +642,35 @@ "no-cache" ], "ETag": [ - "W/\"ae5949da-c7ff-4922-88f7-246b0834170d\"" + "W/\"2d325bd9-e421-49f1-988f-8bdcae96271d\"" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14992" + "14974" ], "x-ms-correlation-request-id": [ - "ea987463-f038-45f6-929d-27dddd975f2d" + "a6bedc83-0228-4f6b-ab69-2db09b609c1d" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001619Z:ea987463-f038-45f6-929d-27dddd975f2d" + "CENTRALUS:20160220T020349Z:a6bedc83-0228-4f6b-ab69-2db09b609c1d" ], "Date": [ - "Sat, 19 Dec 2015 00:16:18 GMT" + "Sat, 20 Feb 2016 02:03:49 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3B1YmlwY3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcHViaXBjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "d6998389-2d6b-49a1-b10e-f291dde55799" + "e36699de-3671-4993-80e8-0b45edab9164" ], "accept-language": [ "en-US" @@ -679,10 +679,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"pubipcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084\",\r\n \"etag\": \"W/\\\"ae5949da-c7ff-4922-88f7-246b0834170d\\\"\",\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"a1f4f4f2-282a-451c-a22d-b92fc2a3358e\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps6084\",\r\n \"fqdn\": \"pubipcrptestps6084.eastus.cloudapp.azure.com\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"pubipcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579\",\r\n \"etag\": \"W/\\\"2d325bd9-e421-49f1-988f-8bdcae96271d\\\"\",\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"d48a7d72-f811-4e0b-bc07-d6a20712a134\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps579\",\r\n \"fqdn\": \"pubipcrptestps579.eastus.cloudapp.azure.com\"\r\n }\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "666" + "661" ], "Content-Type": [ "application/json; charset=utf-8" @@ -694,7 +694,7 @@ "no-cache" ], "x-ms-request-id": [ - "ef1497b2-e8ba-47e1-9791-3fa976a3f900" + "0a3e97d2-590e-4919-8b49-26e2e23ea302" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -703,35 +703,35 @@ "no-cache" ], "ETag": [ - "W/\"ae5949da-c7ff-4922-88f7-246b0834170d\"" + "W/\"2d325bd9-e421-49f1-988f-8bdcae96271d\"" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14991" + "14973" ], "x-ms-correlation-request-id": [ - "81227046-2d8c-4080-9746-1ae500395dbc" + "b4faea7d-da8b-479e-a37f-3a4942dcf6d2" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001619Z:81227046-2d8c-4080-9746-1ae500395dbc" + "CENTRALUS:20160220T020350Z:b4faea7d-da8b-479e-a37f-3a4942dcf6d2" ], "Date": [ - "Sat, 19 Dec 2015 00:16:19 GMT" + "Sat, 20 Feb 2016 02:03:49 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3B1YmlwY3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcHViaXBjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "92435f4a-2bb4-42d1-a978-db7637a1fe02" + "a7761ab6-66bd-46a7-ab00-8b7ce4a6d63c" ], "accept-language": [ "en-US" @@ -740,10 +740,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"pubipcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084\",\r\n \"etag\": \"W/\\\"ae5949da-c7ff-4922-88f7-246b0834170d\\\"\",\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"a1f4f4f2-282a-451c-a22d-b92fc2a3358e\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps6084\",\r\n \"fqdn\": \"pubipcrptestps6084.eastus.cloudapp.azure.com\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"pubipcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579\",\r\n \"etag\": \"W/\\\"2d325bd9-e421-49f1-988f-8bdcae96271d\\\"\",\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"d48a7d72-f811-4e0b-bc07-d6a20712a134\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps579\",\r\n \"fqdn\": \"pubipcrptestps579.eastus.cloudapp.azure.com\"\r\n }\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "666" + "661" ], "Content-Type": [ "application/json; charset=utf-8" @@ -755,7 +755,7 @@ "no-cache" ], "x-ms-request-id": [ - "0a894dc1-acbb-4689-96e1-347cb7b628d2" + "f23aac89-f884-4602-834e-f03f896bee0c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -764,41 +764,41 @@ "no-cache" ], "ETag": [ - "W/\"ae5949da-c7ff-4922-88f7-246b0834170d\"" + "W/\"2d325bd9-e421-49f1-988f-8bdcae96271d\"" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14990" + "14972" ], "x-ms-correlation-request-id": [ - "87aa1ee0-4034-4a3f-90bb-0c22e5f82d26" + "1d59b06d-d096-4fa6-9e24-e425fc4cc9c6" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001619Z:87aa1ee0-4034-4a3f-90bb-0c22e5f82d26" + "CENTRALUS:20160220T020350Z:1d59b06d-d096-4fa6-9e24-e425fc4cc9c6" ], "Date": [ - "Sat, 19 Dec 2015 00:16:19 GMT" + "Sat, 20 Feb 2016 02:03:49 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3B1YmxpY0lQQWRkcmVzc2VzL3B1YmlwY3JwdGVzdHBzNjA4ND9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHVibGljSVBBZGRyZXNzZXMvcHViaXBjcnB0ZXN0cHM1Nzk/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "PUT", - "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps6084\"\r\n }\r\n }\r\n}", + "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps579\"\r\n }\r\n }\r\n}", "RequestHeaders": { "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "174" + "173" ], "x-ms-client-request-id": [ - "28ff2bc6-3e1d-412a-ac21-38d26ec20a21" + "2c60cf8d-1b5a-4de5-a287-e0f17303febb" ], "accept-language": [ "en-US" @@ -807,10 +807,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"pubipcrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084\",\r\n \"etag\": \"W/\\\"d8bd4586-6dee-4fcc-bac3-1dc0c132725e\\\"\",\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"a1f4f4f2-282a-451c-a22d-b92fc2a3358e\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps6084\",\r\n \"fqdn\": \"pubipcrptestps6084.eastus.cloudapp.azure.com\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"pubipcrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579\",\r\n \"etag\": \"W/\\\"992256c9-e403-4202-8fa1-046389bc31de\\\"\",\r\n \"type\": \"Microsoft.Network/publicIPAddresses\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"d48a7d72-f811-4e0b-bc07-d6a20712a134\",\r\n \"publicIPAllocationMethod\": \"Dynamic\",\r\n \"idleTimeoutInMinutes\": 4,\r\n \"dnsSettings\": {\r\n \"domainNameLabel\": \"pubipcrptestps579\",\r\n \"fqdn\": \"pubipcrptestps579.eastus.cloudapp.azure.com\"\r\n }\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "665" + "660" ], "Content-Type": [ "application/json; charset=utf-8" @@ -825,10 +825,10 @@ "10" ], "x-ms-request-id": [ - "ea5da4eb-2817-4f53-b350-f194e77fd51b" + "81dbaa5d-ab5a-44db-8a44-4306d3e475e3" ], "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Network/locations/eastus/operations/ea5da4eb-2817-4f53-b350-f194e77fd51b?api-version=2015-06-15" + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Network/locations/eastus/operations/81dbaa5d-ab5a-44db-8a44-4306d3e475e3?api-version=2015-06-15" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -844,20 +844,20 @@ "1198" ], "x-ms-correlation-request-id": [ - "e610c6ce-e625-485c-bf77-0e7739b06474" + "33c6a17a-c5d8-47a1-8b39-73d2fa734da0" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001608Z:e610c6ce-e625-485c-bf77-0e7739b06474" + "CENTRALUS:20160220T020319Z:33c6a17a-c5d8-47a1-8b39-73d2fa734da0" ], "Date": [ - "Sat, 19 Dec 2015 00:16:08 GMT" + "Sat, 20 Feb 2016 02:03:18 GMT" ] }, "StatusCode": 201 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Network/locations/eastus/operations/ea5da4eb-2817-4f53-b350-f194e77fd51b?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZWE1ZGE0ZWItMjgxNy00ZjUzLWIzNTAtZjE5NGU3N2ZkNTFiP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Network/locations/eastus/operations/81dbaa5d-ab5a-44db-8a44-4306d3e475e3?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODFkYmFhNWQtYWI1YS00NGRiLThhNDQtNDMwNmQzZTQ3NWUzP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -880,7 +880,7 @@ "no-cache" ], "x-ms-request-id": [ - "ff9acbf8-d62c-405a-b5dd-d767646f9660" + "af512ec0-5930-4ff1-8103-123a2fea86fa" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -893,28 +893,28 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14993" + "14975" ], "x-ms-correlation-request-id": [ - "77111387-cd4e-4d03-a05a-9b80c5404ae6" + "55320912-fde5-4609-b2f5-af44f66a572d" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001618Z:77111387-cd4e-4d03-a05a-9b80c5404ae6" + "CENTRALUS:20160220T020349Z:55320912-fde5-4609-b2f5-af44f66a572d" ], "Date": [ - "Sat, 19 Dec 2015 00:16:18 GMT" + "Sat, 20 Feb 2016 02:03:49 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL25ldHdvcmtJbnRlcmZhY2VzL25pY2NycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya0ludGVyZmFjZXMvbmljY3JwdGVzdHBzNTc5P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "a5bc09cb-06e9-404e-95c5-d8a360d30c9f" + "8223d3d7-0374-4c89-b1a8-b2cf64ea6eb0" ], "accept-language": [ "en-US" @@ -923,10 +923,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/networkInterfaces/niccrptestps6084' under resource group 'crptestps6084' was not found.\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/networkInterfaces/niccrptestps579' under resource group 'crptestps579' was not found.\"\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "169" + "167" ], "Content-Type": [ "application/json; charset=utf-8" @@ -941,13 +941,13 @@ "gateway" ], "x-ms-request-id": [ - "20c5a4f6-800f-49da-bbe0-ff9600089512" + "d69683f3-acb8-4adb-9182-f31f807ad8bb" ], "x-ms-correlation-request-id": [ - "20c5a4f6-800f-49da-bbe0-ff9600089512" + "d69683f3-acb8-4adb-9182-f31f807ad8bb" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001619Z:20c5a4f6-800f-49da-bbe0-ff9600089512" + "CENTRALUS:20160220T020350Z:d69683f3-acb8-4adb-9182-f31f807ad8bb" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -956,19 +956,19 @@ "no-cache" ], "Date": [ - "Sat, 19 Dec 2015 00:16:19 GMT" + "Sat, 20 Feb 2016 02:03:49 GMT" ] }, "StatusCode": 404 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL25ldHdvcmtJbnRlcmZhY2VzL25pY2NycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya0ludGVyZmFjZXMvbmljY3JwdGVzdHBzNTc5P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "97a726cd-440b-41c0-9f98-bb8c880b77ee" + "43d6840c-c0b5-46b8-9ed5-58c2d68b180b" ], "accept-language": [ "en-US" @@ -977,10 +977,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"niccrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084\",\r\n \"etag\": \"W/\\\"2d7d371d-233c-4a59-a2e9-8611748747d8\\\"\",\r\n \"type\": \"Microsoft.Network/networkInterfaces\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"4975ba00-6477-4259-8c7a-cbbc9616dd1b\",\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig1\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084/ipConfigurations/ipconfig1\",\r\n \"etag\": \"W/\\\"2d7d371d-233c-4a59-a2e9-8611748747d8\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084\"\r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084/subnets/subnetcrptestps6084\"\r\n },\r\n \"primary\": true\r\n }\r\n }\r\n ],\r\n \"dnsSettings\": {\r\n \"dnsServers\": [],\r\n \"appliedDnsServers\": []\r\n },\r\n \"enableIPForwarding\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"niccrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579\",\r\n \"etag\": \"W/\\\"885ed197-1010-44c7-8284-15f6055c8be3\\\"\",\r\n \"type\": \"Microsoft.Network/networkInterfaces\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"7a7aa9e4-fd54-4cd3-ad56-838e3a07fb2b\",\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig1\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579/ipConfigurations/ipconfig1\",\r\n \"etag\": \"W/\\\"885ed197-1010-44c7-8284-15f6055c8be3\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579\"\r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579/subnets/subnetcrptestps579\"\r\n },\r\n \"primary\": true\r\n }\r\n }\r\n ],\r\n \"dnsSettings\": {\r\n \"dnsServers\": [],\r\n \"appliedDnsServers\": []\r\n },\r\n \"enableIPForwarding\": false\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "1545" + "1535" ], "Content-Type": [ "application/json; charset=utf-8" @@ -992,7 +992,7 @@ "no-cache" ], "x-ms-request-id": [ - "bede0394-75da-43e7-a165-719a20122488" + "6124cf54-e1e7-482d-a75f-56c6f3b83ec4" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1001,35 +1001,35 @@ "no-cache" ], "ETag": [ - "W/\"2d7d371d-233c-4a59-a2e9-8611748747d8\"" + "W/\"885ed197-1010-44c7-8284-15f6055c8be3\"" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14988" + "14970" ], "x-ms-correlation-request-id": [ - "83ed60d3-98ec-4eed-b9ae-850610324217" + "6c869214-5508-4b07-bb89-81302f252898" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001621Z:83ed60d3-98ec-4eed-b9ae-850610324217" + "CENTRALUS:20160220T020352Z:6c869214-5508-4b07-bb89-81302f252898" ], "Date": [ - "Sat, 19 Dec 2015 00:16:21 GMT" + "Sat, 20 Feb 2016 02:03:52 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL25ldHdvcmtJbnRlcmZhY2VzL25pY2NycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya0ludGVyZmFjZXMvbmljY3JwdGVzdHBzNTc5P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "d525a670-381c-4713-a53b-0c1623772931" + "703229f5-3d9a-4fad-825b-177f66ea28ea" ], "accept-language": [ "en-US" @@ -1038,10 +1038,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"niccrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084\",\r\n \"etag\": \"W/\\\"2d7d371d-233c-4a59-a2e9-8611748747d8\\\"\",\r\n \"type\": \"Microsoft.Network/networkInterfaces\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"4975ba00-6477-4259-8c7a-cbbc9616dd1b\",\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig1\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084/ipConfigurations/ipconfig1\",\r\n \"etag\": \"W/\\\"2d7d371d-233c-4a59-a2e9-8611748747d8\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084\"\r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084/subnets/subnetcrptestps6084\"\r\n },\r\n \"primary\": true\r\n }\r\n }\r\n ],\r\n \"dnsSettings\": {\r\n \"dnsServers\": [],\r\n \"appliedDnsServers\": []\r\n },\r\n \"enableIPForwarding\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"niccrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579\",\r\n \"etag\": \"W/\\\"885ed197-1010-44c7-8284-15f6055c8be3\\\"\",\r\n \"type\": \"Microsoft.Network/networkInterfaces\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"7a7aa9e4-fd54-4cd3-ad56-838e3a07fb2b\",\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig1\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579/ipConfigurations/ipconfig1\",\r\n \"etag\": \"W/\\\"885ed197-1010-44c7-8284-15f6055c8be3\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579\"\r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579/subnets/subnetcrptestps579\"\r\n },\r\n \"primary\": true\r\n }\r\n }\r\n ],\r\n \"dnsSettings\": {\r\n \"dnsServers\": [],\r\n \"appliedDnsServers\": []\r\n },\r\n \"enableIPForwarding\": false\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "1545" + "1535" ], "Content-Type": [ "application/json; charset=utf-8" @@ -1053,7 +1053,7 @@ "no-cache" ], "x-ms-request-id": [ - "ce7f7864-fd7f-4751-b593-3e804bc7649f" + "b9f8ec20-5efc-4daa-a443-818371a9e3a8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1062,41 +1062,41 @@ "no-cache" ], "ETag": [ - "W/\"2d7d371d-233c-4a59-a2e9-8611748747d8\"" + "W/\"885ed197-1010-44c7-8284-15f6055c8be3\"" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14987" + "14969" ], "x-ms-correlation-request-id": [ - "e4deb100-1687-4295-a431-680b443bfa94" + "d10587d2-0fda-4c50-8dad-f7ae1622eabc" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001621Z:e4deb100-1687-4295-a431-680b443bfa94" + "CENTRALUS:20160220T020353Z:d10587d2-0fda-4c50-8dad-f7ae1622eabc" ], "Date": [ - "Sat, 19 Dec 2015 00:16:21 GMT" + "Sat, 20 Feb 2016 02:03:52 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL25ldHdvcmtJbnRlcmZhY2VzL25pY2NycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya0ludGVyZmFjZXMvbmljY3JwdGVzdHBzNTc5P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "PUT", - "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig1\",\r\n \"properties\": {\r\n \"loadBalancerBackendAddressPools\": [],\r\n \"loadBalancerInboundNatRules\": [],\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084/subnets/subnetcrptestps6084\",\r\n \"properties\": {\r\n \"ipConfigurations\": []\r\n }\r\n },\r\n \"publicIPAddress\": {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084\"\r\n }\r\n }\r\n }\r\n ],\r\n \"primary\": false,\r\n \"enableIPForwarding\": false\r\n }\r\n}", + "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig1\",\r\n \"properties\": {\r\n \"loadBalancerBackendAddressPools\": [],\r\n \"loadBalancerInboundNatRules\": [],\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579/subnets/subnetcrptestps579\",\r\n \"properties\": {\r\n \"ipConfigurations\": []\r\n }\r\n },\r\n \"publicIPAddress\": {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579\"\r\n }\r\n }\r\n }\r\n ],\r\n \"primary\": false,\r\n \"enableIPForwarding\": false\r\n }\r\n}", "RequestHeaders": { "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "900" + "895" ], "x-ms-client-request-id": [ - "276b74ff-8896-4f79-bc60-5426e9fb169c" + "64708cc8-b588-4570-962d-3b6917584ab0" ], "accept-language": [ "en-US" @@ -1105,10 +1105,10 @@ "Microsoft.Azure.Management.Network.NetworkManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"name\": \"niccrptestps6084\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084\",\r\n \"etag\": \"W/\\\"2d7d371d-233c-4a59-a2e9-8611748747d8\\\"\",\r\n \"type\": \"Microsoft.Network/networkInterfaces\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"4975ba00-6477-4259-8c7a-cbbc9616dd1b\",\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig1\",\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084/ipConfigurations/ipconfig1\",\r\n \"etag\": \"W/\\\"2d7d371d-233c-4a59-a2e9-8611748747d8\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps6084\"\r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/virtualNetworks/vnetcrptestps6084/subnets/subnetcrptestps6084\"\r\n },\r\n \"primary\": true\r\n }\r\n }\r\n ],\r\n \"dnsSettings\": {\r\n \"dnsServers\": [],\r\n \"appliedDnsServers\": []\r\n },\r\n \"enableIPForwarding\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"niccrptestps579\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579\",\r\n \"etag\": \"W/\\\"885ed197-1010-44c7-8284-15f6055c8be3\\\"\",\r\n \"type\": \"Microsoft.Network/networkInterfaces\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"7a7aa9e4-fd54-4cd3-ad56-838e3a07fb2b\",\r\n \"ipConfigurations\": [\r\n {\r\n \"name\": \"ipconfig1\",\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579/ipConfigurations/ipconfig1\",\r\n \"etag\": \"W/\\\"885ed197-1010-44c7-8284-15f6055c8be3\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateIPAddress\": \"10.0.0.4\",\r\n \"privateIPAllocationMethod\": \"Dynamic\",\r\n \"publicIPAddress\": {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/publicIPAddresses/pubipcrptestps579\"\r\n },\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/virtualNetworks/vnetcrptestps579/subnets/subnetcrptestps579\"\r\n },\r\n \"primary\": true\r\n }\r\n }\r\n ],\r\n \"dnsSettings\": {\r\n \"dnsServers\": [],\r\n \"appliedDnsServers\": []\r\n },\r\n \"enableIPForwarding\": false\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "1545" + "1535" ], "Content-Type": [ "application/json; charset=utf-8" @@ -1120,10 +1120,10 @@ "no-cache" ], "x-ms-request-id": [ - "a523059d-226b-4778-bac9-06b2c39cfe72" + "6441508d-dd5c-49c8-9bfe-d8488485f07b" ], "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Network/locations/eastus/operations/a523059d-226b-4778-bac9-06b2c39cfe72?api-version=2015-06-15" + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Network/locations/eastus/operations/6441508d-dd5c-49c8-9bfe-d8488485f07b?api-version=2015-06-15" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1139,20 +1139,20 @@ "1197" ], "x-ms-correlation-request-id": [ - "708884a1-f461-4d62-89f6-194db1bbfe98" + "c9ba483e-20be-40ae-89a0-17f8bf96336a" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001621Z:708884a1-f461-4d62-89f6-194db1bbfe98" + "CENTRALUS:20160220T020352Z:c9ba483e-20be-40ae-89a0-17f8bf96336a" ], "Date": [ - "Sat, 19 Dec 2015 00:16:21 GMT" + "Sat, 20 Feb 2016 02:03:52 GMT" ] }, "StatusCode": 201 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Storage/storageAccounts/stocrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9zdG9jcnB0ZXN0cHM2MDg0P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Storage/storageAccounts/stocrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b2NycHRlc3RwczU3OT9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", "RequestMethod": "PUT", "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\"\r\n }\r\n}", "RequestHeaders": { @@ -1163,7 +1163,7 @@ "89" ], "x-ms-client-request-id": [ - "39d51dc7-98b8-4558-bd2e-020d852f1e90" + "a2014a0e-f1bd-4e6c-a22a-6fcf733ab99e" ], "User-Agent": [ "Microsoft.Azure.Management.Storage.StorageManagementClient/3.0.0.0" @@ -1187,41 +1187,41 @@ "1199" ], "x-ms-request-id": [ - "6708441d-2b77-49fd-a0de-f10deac61bf3" + "d6dae0a5-7f1f-42e3-bbf9-eaeabdc1ba0c" ], "Cache-Control": [ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Storage/operations/a933830d-129c-497b-abd6-aa9abba91076?monitor=true&api-version=2015-06-15" + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Storage/operations/c3bc9bcc-8af5-4f2f-a17f-17999837d4a3?monitor=true&api-version=2015-06-15" ], "Server": [ "Microsoft-Azure-Storage-Resource-Provider/1.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-correlation-request-id": [ - "6708441d-2b77-49fd-a0de-f10deac61bf3" + "d6dae0a5-7f1f-42e3-bbf9-eaeabdc1ba0c" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001624Z:6708441d-2b77-49fd-a0de-f10deac61bf3" + "WESTUS:20160220T020355Z:d6dae0a5-7f1f-42e3-bbf9-eaeabdc1ba0c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Date": [ - "Sat, 19 Dec 2015 00:16:24 GMT" + "Sat, 20 Feb 2016 02:03:54 GMT" ] }, "StatusCode": 202 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Storage/operations/a933830d-129c-497b-abd6-aa9abba91076?monitor=true&api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9vcGVyYXRpb25zL2E5MzM4MzBkLTEyOWMtNDk3Yi1hYmQ2LWFhOWFiYmE5MTA3Nj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Storage/operations/c3bc9bcc-8af5-4f2f-a17f-17999837d4a3?monitor=true&api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9vcGVyYXRpb25zL2MzYmM5YmNjLThhZjUtNGYyZi1hMTdmLTE3OTk5ODM3ZDRhMz9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "7506af63-3a86-48fa-8a58-edff29558c70" + "f6c43199-f198-46b9-956e-fae39449c329" ], "User-Agent": [ "Microsoft.Azure.Management.Storage.StorageManagementClient/3.0.0.0" @@ -1242,44 +1242,44 @@ "25" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14999" + "14961" ], "x-ms-request-id": [ - "5a27755d-614e-4928-b14c-f39d980cf978" + "86d15fb0-f4b4-4829-aa24-0a4c41139981" ], "Cache-Control": [ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Storage/operations/a933830d-129c-497b-abd6-aa9abba91076?monitor=true&api-version=2015-06-15" + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Storage/operations/c3bc9bcc-8af5-4f2f-a17f-17999837d4a3?monitor=true&api-version=2015-06-15" ], "Server": [ "Microsoft-Azure-Storage-Resource-Provider/1.0", "Microsoft-HTTPAPI/2.0" ], "x-ms-correlation-request-id": [ - "5a27755d-614e-4928-b14c-f39d980cf978" + "86d15fb0-f4b4-4829-aa24-0a4c41139981" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001624Z:5a27755d-614e-4928-b14c-f39d980cf978" + "WESTUS:20160220T020356Z:86d15fb0-f4b4-4829-aa24-0a4c41139981" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Date": [ - "Sat, 19 Dec 2015 00:16:24 GMT" + "Sat, 20 Feb 2016 02:03:55 GMT" ] }, "StatusCode": 202 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Storage/operations/a933830d-129c-497b-abd6-aa9abba91076?monitor=true&api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9vcGVyYXRpb25zL2E5MzM4MzBkLTEyOWMtNDk3Yi1hYmQ2LWFhOWFiYmE5MTA3Nj9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Storage/operations/c3bc9bcc-8af5-4f2f-a17f-17999837d4a3?monitor=true&api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9vcGVyYXRpb25zL2MzYmM5YmNjLThhZjUtNGYyZi1hMTdmLTE3OTk5ODM3ZDRhMz9tb25pdG9yPXRydWUmYXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "cfd77564-b41d-4f82-9987-dcbe689350e4" + "17d550d1-4818-476f-8c0f-438f78c5444c" ], "User-Agent": [ "Microsoft.Azure.Management.Storage.StorageManagementClient/3.0.0.0" @@ -1300,7 +1300,7 @@ "no-cache" ], "x-ms-request-id": [ - "e9fe9a3c-f07c-443f-a03d-83e371131f08" + "cf9adbe5-6f8b-400f-b5db-8324c062d9bc" ], "Cache-Control": [ "no-cache" @@ -1310,40 +1310,40 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14998" + "14960" ], "x-ms-correlation-request-id": [ - "e9fe9a3c-f07c-443f-a03d-83e371131f08" + "cf9adbe5-6f8b-400f-b5db-8324c062d9bc" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001649Z:e9fe9a3c-f07c-443f-a03d-83e371131f08" + "WESTUS:20160220T020421Z:cf9adbe5-6f8b-400f-b5db-8324c062d9bc" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Date": [ - "Sat, 19 Dec 2015 00:16:48 GMT" + "Sat, 20 Feb 2016 02:04:20 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Storage/storageAccounts/stocrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9zdG9jcnB0ZXN0cHM2MDg0P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Storage/storageAccounts/stocrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b2NycHRlc3RwczU3OT9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "e43d4eae-b6eb-4c4a-b2cc-a8914be9ca77" + "082e086b-82fa-40cd-a628-9061be146911" ], "User-Agent": [ "Microsoft.Azure.Management.Storage.StorageManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Storage/storageAccounts/stocrptestps6084\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps6084\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-19T00:16:23.8130129Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps6084.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps6084.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps6084.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps6084.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Storage/storageAccounts/stocrptestps579\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps579\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2016-02-20T02:03:54.9044537Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps579.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps579.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps579.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps579.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "743" + "736" ], "Content-Type": [ "application/json" @@ -1355,7 +1355,7 @@ "no-cache" ], "x-ms-request-id": [ - "4997f40e-443d-48df-a3e2-491f63a04aea" + "710624ce-e498-4f77-b2e9-c5f9ad0c4c7f" ], "Cache-Control": [ "no-cache" @@ -1365,40 +1365,40 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14997" + "14959" ], "x-ms-correlation-request-id": [ - "4997f40e-443d-48df-a3e2-491f63a04aea" + "710624ce-e498-4f77-b2e9-c5f9ad0c4c7f" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001649Z:4997f40e-443d-48df-a3e2-491f63a04aea" + "WESTUS:20160220T020421Z:710624ce-e498-4f77-b2e9-c5f9ad0c4c7f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Date": [ - "Sat, 19 Dec 2015 00:16:48 GMT" + "Sat, 20 Feb 2016 02:04:20 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Storage/storageAccounts/stocrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9zdG9jcnB0ZXN0cHM2MDg0P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Storage/storageAccounts/stocrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzL3N0b2NycHRlc3RwczU3OT9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "d0b22b41-9491-4a56-a236-896aa3d06fab" + "dac01c87-73a8-43eb-855c-b135124e98f9" ], "User-Agent": [ "Microsoft.Azure.Management.Storage.StorageManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Storage/storageAccounts/stocrptestps6084\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps6084\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-19T00:16:23.8130129Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps6084.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps6084.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps6084.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps6084.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Storage/storageAccounts/stocrptestps579\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps579\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2016-02-20T02:03:54.9044537Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps579.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps579.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps579.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps579.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "743" + "736" ], "Content-Type": [ "application/json" @@ -1410,7 +1410,7 @@ "no-cache" ], "x-ms-request-id": [ - "a7b7d68e-22d0-438c-8195-e3d75578d293" + "296350e7-1a73-44f4-94d5-244ba4d9e5bc" ], "Cache-Control": [ "no-cache" @@ -1420,40 +1420,40 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14996" + "14958" ], "x-ms-correlation-request-id": [ - "a7b7d68e-22d0-438c-8195-e3d75578d293" + "296350e7-1a73-44f4-94d5-244ba4d9e5bc" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001649Z:a7b7d68e-22d0-438c-8195-e3d75578d293" + "WESTUS:20160220T020421Z:296350e7-1a73-44f4-94d5-244ba4d9e5bc" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Date": [ - "Sat, 19 Dec 2015 00:16:49 GMT" + "Sat, 20 Feb 2016 02:04:20 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Storage/storageAccounts?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHM/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Storage/storageAccounts?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHM/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "2d75febb-239e-4fe7-9ed3-1fd9ad0718cd" + "8ab7ab12-0c5f-45d2-bb44-8f5280f74ed4" ], "User-Agent": [ "Microsoft.Azure.Management.Storage.StorageManagementClient/3.0.0.0" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps1013/providers/Microsoft.Storage/storageAccounts/25alkcwqxomumpg2ngz7q\",\r\n \"location\": \"westus\",\r\n \"name\": \"25alkcwqxomumpg2ngz7q\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T04:21:07.2740633Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://25alkcwqxomumpg2ngz7q.blob.core.windows.net/\",\r\n \"file\": \"https://25alkcwqxomumpg2ngz7q.file.core.windows.net/\",\r\n \"queue\": \"https://25alkcwqxomumpg2ngz7q.queue.core.windows.net/\",\r\n \"table\": \"https://25alkcwqxomumpg2ngz7q.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6810/providers/Microsoft.Storage/storageAccounts/bejoifxr7vcd7mif7vsnzg\",\r\n \"location\": \"westus\",\r\n \"name\": \"bejoifxr7vcd7mif7vsnzg\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-25T02:07:58.5240189Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://bejoifxr7vcd7mif7vsnzg.blob.core.windows.net/\",\r\n \"file\": \"https://bejoifxr7vcd7mif7vsnzg.file.core.windows.net/\",\r\n \"queue\": \"https://bejoifxr7vcd7mif7vsnzg.queue.core.windows.net/\",\r\n \"table\": \"https://bejoifxr7vcd7mif7vsnzg.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps3541/providers/Microsoft.Storage/storageAccounts/crptestps3541sto\",\r\n \"location\": \"westus\",\r\n \"name\": \"crptestps3541sto\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-13T02:54:13.5222659Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://crptestps3541sto.blob.core.windows.net/\",\r\n \"file\": \"https://crptestps3541sto.file.core.windows.net/\",\r\n \"queue\": \"https://crptestps3541sto.queue.core.windows.net/\",\r\n \"table\": \"https://crptestps3541sto.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {\r\n \"crptestps6965\": \"2015-12-13 02:54:38Z\"\r\n },\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps5934/providers/Microsoft.Storage/storageAccounts/crptestps5934sto\",\r\n \"location\": \"westus\",\r\n \"name\": \"crptestps5934sto\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-11-17T13:02:21.0037252Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://crptestps5934sto.blob.core.windows.net/\",\r\n \"file\": \"https://crptestps5934sto.file.core.windows.net/\",\r\n \"queue\": \"https://crptestps5934sto.queue.core.windows.net/\",\r\n \"table\": \"https://crptestps5934sto.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {\r\n \"crptestps574\": \"2015-11-17 13:02:48Z\"\r\n },\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps5244/providers/Microsoft.Storage/storageAccounts/pqhu6xt4klz81dydf2dcd\",\r\n \"location\": \"westus\",\r\n \"name\": \"pqhu6xt4klz81dydf2dcd\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T02:03:42.5126658Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://pqhu6xt4klz81dydf2dcd.blob.core.windows.net/\",\r\n \"file\": \"https://pqhu6xt4klz81dydf2dcd.file.core.windows.net/\",\r\n \"queue\": \"https://pqhu6xt4klz81dydf2dcd.queue.core.windows.net/\",\r\n \"table\": \"https://pqhu6xt4klz81dydf2dcd.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps1013/providers/Microsoft.Storage/storageAccounts/stocrptestps1013\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps1013\",\r\n \"properties\": {\r\n \"accountType\": \"Premium_LRS\",\r\n \"creationTime\": \"2015-09-24T04:20:07.8674758Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps1013.blob.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps1372/providers/Microsoft.Storage/storageAccounts/stocrptestps1372\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps1372\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-18T22:31:07.1773707Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps1372.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps1372.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps1372.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps1372.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps2072/providers/Microsoft.Storage/storageAccounts/stocrptestps2072\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps2072\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-12T02:19:55.6977949Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps2072.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps2072.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps2072.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps2072.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps2639/providers/Microsoft.Storage/storageAccounts/stocrptestps2639\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps2639\",\r\n \"properties\": {\r\n \"accountType\": \"Premium_LRS\",\r\n \"creationTime\": \"2015-09-24T03:52:37.4339159Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps2639.blob.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps2639/providers/Microsoft.Storage/storageAccounts/stocrptestps2639add\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps2639add\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:53:04.5747379Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps2639add.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps2639add.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps2639add.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps2639add.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps2854/providers/Microsoft.Storage/storageAccounts/stocrptestps2854\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps2854\",\r\n \"properties\": {\r\n \"accountType\": \"Premium_LRS\",\r\n \"creationTime\": \"2015-09-24T03:49:39.4009944Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps2854.blob.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps2854/providers/Microsoft.Storage/storageAccounts/stocrptestps2854add\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps2854add\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:50:06.4793732Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps2854add.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps2854add.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps2854add.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps2854add.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps4115/providers/Microsoft.Storage/storageAccounts/stocrptestps4115\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps4115\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:17:12.433774Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps4115.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps4115.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps4115.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps4115.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps4115/providers/Microsoft.Storage/storageAccounts/stocrptestps4115add\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps4115add\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:17:40.0745113Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps4115add.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps4115add.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps4115add.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps4115add.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps5143/providers/Microsoft.Storage/storageAccounts/stocrptestps5143\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps5143\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T02:29:28.0404402Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps5143.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps5143.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps5143.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps5143.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps5244/providers/Microsoft.Storage/storageAccounts/stocrptestps5244\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps5244\",\r\n \"properties\": {\r\n \"accountType\": \"Premium_LRS\",\r\n \"creationTime\": \"2015-09-24T02:03:04.0124174Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps5244.blob.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps5428/providers/Microsoft.Storage/storageAccounts/stocrptestps5428\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps5428\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-18T03:07:33.6211225Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps5428.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps5428.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps5428.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps5428.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps56/providers/Microsoft.Storage/storageAccounts/stocrptestps56\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps56\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-02T18:12:34.2647025Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps56.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps56.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps56.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps56.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps578/providers/Microsoft.Storage/storageAccounts/stocrptestps578\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps578\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-10-30T21:07:32.0380514Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps578.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps578.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps578.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps578.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Storage/storageAccounts/stocrptestps6084\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps6084\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-19T00:16:23.8130129Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps6084.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps6084.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps6084.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps6084.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6270/providers/Microsoft.Storage/storageAccounts/stocrptestps6270\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps6270\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-16T23:05:45.2211023Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps6270.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps6270.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps6270.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps6270.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6810/providers/Microsoft.Storage/storageAccounts/stocrptestps6810\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps6810\",\r\n \"properties\": {\r\n \"accountType\": \"Premium_LRS\",\r\n \"creationTime\": \"2015-09-25T01:18:35.9601114Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps6810.blob.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6846/providers/Microsoft.Storage/storageAccounts/stocrptestps6846\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps6846\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-16T18:28:28.1640428Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps6846.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps6846.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps6846.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps6846.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps7089/providers/Microsoft.Storage/storageAccounts/stocrptestps7089\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps7089\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-02T18:45:20.9742566Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps7089.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps7089.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps7089.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps7089.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps7647/providers/Microsoft.Storage/storageAccounts/stocrptestps7647\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps7647\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:29:52.8761356Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps7647.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps7647.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps7647.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps7647.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps7647/providers/Microsoft.Storage/storageAccounts/stocrptestps7647add\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps7647add\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:30:20.6106867Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps7647add.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps7647add.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps7647add.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps7647add.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps8179/providers/Microsoft.Storage/storageAccounts/stocrptestps8179\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps8179\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-10-21T02:54:42.9450082Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps8179.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps8179.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps8179.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps8179.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps8428/providers/Microsoft.Storage/storageAccounts/stocrptestps8428\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps8428\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T04:43:19.3686534Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps8428.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps8428.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps8428.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps8428.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps8760/providers/Microsoft.Storage/storageAccounts/stocrptestps8760\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps8760\",\r\n \"properties\": {\r\n \"accountType\": \"Premium_LRS\",\r\n \"creationTime\": \"2015-09-24T03:03:19.36594Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps8760.blob.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps8760/providers/Microsoft.Storage/storageAccounts/stocrptestps8760add\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps8760add\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:03:46.4598242Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps8760add.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps8760add.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps8760add.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps8760add.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps9368/providers/Microsoft.Storage/storageAccounts/stocrptestps9368\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps9368\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T02:41:24.6231137Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps9368.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps9368.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps9368.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps9368.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps9414/providers/Microsoft.Storage/storageAccounts/stocrptestps9414\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps9414\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-12-16T07:37:01.8300242Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps9414.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps9414.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps9414.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps9414.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps9441/providers/Microsoft.Storage/storageAccounts/stocrptestps9441\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps9441\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:35:47.7064288Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps9441.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps9441.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps9441.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps9441.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps9441/providers/Microsoft.Storage/storageAccounts/stocrptestps9441add\",\r\n \"location\": \"westus\",\r\n \"name\": \"stocrptestps9441add\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-09-24T03:36:15.6909233Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps9441add.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps9441add.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps9441add.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps9441add.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/pstestrg327/providers/Microsoft.Storage/storageAccounts/stopstestrg327\",\r\n \"location\": \"westus\",\r\n \"name\": \"stopstestrg327\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-04-18T17:45:38.9484234Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stopstestrg327.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg327.file.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg327.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg327.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/pstestrg6302/providers/Microsoft.Storage/storageAccounts/stopstestrg6302\",\r\n \"location\": \"westus\",\r\n \"name\": \"stopstestrg6302\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2015-04-18T06:47:18.2286738Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stopstestrg6302.blob.core.windows.net/\",\r\n \"file\": \"https://stopstestrg6302.file.core.windows.net/\",\r\n \"queue\": \"https://stopstestrg6302.queue.core.windows.net/\",\r\n \"table\": \"https://stopstestrg6302.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"eastus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/kkaczmacontainers/providers/Microsoft.Storage/storageAccounts/containersstorage\",\r\n \"location\": \"westus\",\r\n \"name\": \"containersstorage\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2015-11-13T23:28:12.6560218Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://containersstorage.blob.core.windows.net/\",\r\n \"file\": \"https://containersstorage.file.core.windows.net/\",\r\n \"queue\": \"https://containersstorage.queue.core.windows.net/\",\r\n \"table\": \"https://containersstorage.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {\r\n \"displayName\": \"StorageAccount\"\r\n },\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/eshas-rg1/providers/Microsoft.Storage/storageAccounts/eshasrg16438\",\r\n \"location\": \"westus\",\r\n \"name\": \"eshasrg16438\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2016-02-09T23:39:43.0781665Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://eshasrg16438.blob.core.windows.net/\",\r\n \"file\": \"https://eshasrg16438.file.core.windows.net/\",\r\n \"queue\": \"https://eshasrg16438.queue.core.windows.net/\",\r\n \"table\": \"https://eshasrg16438.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/eshas-rg1/providers/Microsoft.Storage/storageAccounts/eshasrg1stg\",\r\n \"location\": \"westus\",\r\n \"name\": \"eshasrg1stg\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2015-07-08T18:11:40.6480149Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://eshasrg1stg.blob.core.windows.net/\",\r\n \"file\": \"https://eshasrg1stg.file.core.windows.net/\",\r\n \"queue\": \"https://eshasrg1stg.queue.core.windows.net/\",\r\n \"table\": \"https://eshasrg1stg.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/esri2/providers/Microsoft.Storage/storageAccounts/esri2storage\",\r\n \"location\": \"eastus\",\r\n \"name\": \"esri2storage\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2015-10-05T20:04:44.2013144Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://esri2storage.blob.core.windows.net/\",\r\n \"file\": \"https://esri2storage.file.core.windows.net/\",\r\n \"queue\": \"https://esri2storage.queue.core.windows.net/\",\r\n \"table\": \"https://esri2storage.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/example-rg1/providers/Microsoft.Storage/storageAccounts/examplerg1stg\",\r\n \"location\": \"westus\",\r\n \"name\": \"examplerg1stg\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2015-07-20T18:00:18.2325124Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://examplerg1stg.blob.core.windows.net/\",\r\n \"file\": \"https://examplerg1stg.file.core.windows.net/\",\r\n \"queue\": \"https://examplerg1stg.queue.core.windows.net/\",\r\n \"table\": \"https://examplerg1stg.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/narrieta-rg/providers/Microsoft.Storage/storageAccounts/install000\",\r\n \"location\": \"eastus\",\r\n \"name\": \"install000\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2015-12-01T18:05:31.3275983Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://install000.blob.core.windows.net/\",\r\n \"file\": \"https://install000.file.core.windows.net/\",\r\n \"queue\": \"https://install000.queue.core.windows.net/\",\r\n \"table\": \"https://install000.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {\r\n \"displayName\": \"StorageAccount\"\r\n },\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/ktk-test/providers/Microsoft.Storage/storageAccounts/ktktest2994\",\r\n \"location\": \"eastus\",\r\n \"name\": \"ktktest2994\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2016-02-04T21:59:35.3323038Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://ktktest2994.blob.core.windows.net/\",\r\n \"file\": \"https://ktktest2994.file.core.windows.net/\",\r\n \"queue\": \"https://ktktest2994.queue.core.windows.net/\",\r\n \"table\": \"https://ktktest2994.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/nanademorg/providers/Microsoft.Storage/storageAccounts/nanapsconfdemo\",\r\n \"location\": \"eastus2\",\r\n \"name\": \"nanapsconfdemo\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2016-01-15T02:01:23.3767144Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://nanapsconfdemo.blob.core.windows.net/\",\r\n \"file\": \"https://nanapsconfdemo.file.core.windows.net/\",\r\n \"queue\": \"https://nanapsconfdemo.queue.core.windows.net/\",\r\n \"table\": \"https://nanapsconfdemo.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus2\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"centralus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/nanatestrg4/providers/Microsoft.Storage/storageAccounts/nanatestrg46214\",\r\n \"location\": \"westus\",\r\n \"name\": \"nanatestrg46214\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2015-12-18T22:42:24.8698621Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://nanatestrg46214.blob.core.windows.net/\",\r\n \"file\": \"https://nanatestrg46214.file.core.windows.net/\",\r\n \"queue\": \"https://nanatestrg46214.queue.core.windows.net/\",\r\n \"table\": \"https://nanatestrg46214.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/nanatestrg4/providers/Microsoft.Storage/storageAccounts/nanatestrg48347\",\r\n \"location\": \"westus\",\r\n \"name\": \"nanatestrg48347\",\r\n \"properties\": {\r\n \"accountType\": \"Premium_LRS\",\r\n \"creationTime\": \"2015-12-18T22:42:25.0138813Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://nanatestrg48347.blob.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/rmdscextensiontest/providers/Microsoft.Storage/storageAccounts/rmdscextensiontest\",\r\n \"location\": \"westus\",\r\n \"name\": \"rmdscextensiontest\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_LRS\",\r\n \"creationTime\": \"2015-09-02T23:52:51.5836722Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://rmdscextensiontest.blob.core.windows.net/\",\r\n \"file\": \"https://rmdscextensiontest.file.core.windows.net/\",\r\n \"queue\": \"https://rmdscextensiontest.queue.core.windows.net/\",\r\n \"table\": \"https://rmdscextensiontest.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"westus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"statusOfPrimary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Storage/storageAccounts/stocrptestps579\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps579\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2016-02-20T02:03:54.9044537Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps579.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps579.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps579.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps579.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps5940/providers/Microsoft.Storage/storageAccounts/stocrptestps5940\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps5940\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2016-02-19T22:38:18.2856847Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps5940.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps5940.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps5940.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps5940.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps7489/providers/Microsoft.Storage/storageAccounts/stocrptestps7489\",\r\n \"location\": \"eastus\",\r\n \"name\": \"stocrptestps7489\",\r\n \"properties\": {\r\n \"accountType\": \"Standard_GRS\",\r\n \"creationTime\": \"2016-02-20T00:31:28.0345514Z\",\r\n \"primaryEndpoints\": {\r\n \"blob\": \"https://stocrptestps7489.blob.core.windows.net/\",\r\n \"file\": \"https://stocrptestps7489.file.core.windows.net/\",\r\n \"queue\": \"https://stocrptestps7489.queue.core.windows.net/\",\r\n \"table\": \"https://stocrptestps7489.table.core.windows.net/\"\r\n },\r\n \"primaryLocation\": \"eastus\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"secondaryLocation\": \"westus\",\r\n \"statusOfPrimary\": \"available\",\r\n \"statusOfSecondary\": \"available\"\r\n },\r\n \"tags\": {},\r\n \"type\": \"Microsoft.Storage/storageAccounts\"\r\n }\r\n ]\r\n}", "ResponseHeaders": { "Content-Length": [ - "25575" + "9498" ], "Content-Type": [ "application/json" @@ -1465,7 +1465,7 @@ "no-cache" ], "x-ms-request-id": [ - "a03e388b-8534-4217-b6a6-c1f986a247fe" + "7fd82a03-58a5-47f5-9272-f118386d8aed" ], "Cache-Control": [ "no-cache" @@ -1475,37 +1475,37 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14995" + "14957" ], "x-ms-correlation-request-id": [ - "a03e388b-8534-4217-b6a6-c1f986a247fe" + "7fd82a03-58a5-47f5-9272-f118386d8aed" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T001649Z:a03e388b-8534-4217-b6a6-c1f986a247fe" + "WESTUS:20160220T020421Z:7fd82a03-58a5-47f5-9272-f118386d8aed" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "Date": [ - "Sat, 19 Dec 2015 00:16:49 GMT" + "Sat, 20 Feb 2016 02:04:20 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy92bWNycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "PUT", - "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_A2\"\r\n },\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": \"MicrosoftWindowsServer\",\r\n \"offer\": \"WindowsServer\",\r\n \"sku\": \"2008-R2-SP1\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"name\": \"osDisk\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps6084.blob.core.windows.net/test/os.vhd\"\r\n },\r\n \"caching\": \"ReadWrite\",\r\n \"createOption\": \"FromImage\"\r\n },\r\n \"dataDisks\": [\r\n {\r\n \"lun\": 1,\r\n \"name\": \"testDataDisk1\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps6084.blob.core.windows.net/test/data1.vhd\"\r\n },\r\n \"caching\": \"ReadOnly\",\r\n \"createOption\": \"Empty\",\r\n \"diskSizeGB\": 10\r\n }\r\n ]\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"test\",\r\n \"adminUsername\": \"Foo12\",\r\n \"adminPassword\": \"BaR@123crptestps6084\",\r\n \"windowsConfiguration\": {\r\n \"provisionVMAgent\": true\r\n }\r\n },\r\n \"networkProfile\": {\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084\"\r\n }\r\n ]\r\n },\r\n \"diagnosticsProfile\": {\r\n \"bootDiagnostics\": {\r\n \"enabled\": true,\r\n \"storageUri\": \"https://stocrptestps6084.blob.core.windows.net/\"\r\n }\r\n }\r\n }\r\n}", + "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_A2\"\r\n },\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": \"MicrosoftWindowsServer\",\r\n \"offer\": \"WindowsServer\",\r\n \"sku\": \"2012-R2-Datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"name\": \"osDisk\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps579.blob.core.windows.net/test/os.vhd\"\r\n },\r\n \"caching\": \"ReadWrite\",\r\n \"createOption\": \"FromImage\"\r\n },\r\n \"dataDisks\": [\r\n {\r\n \"lun\": 1,\r\n \"name\": \"testDataDisk1\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps579.blob.core.windows.net/test/data1.vhd\"\r\n },\r\n \"caching\": \"ReadOnly\",\r\n \"createOption\": \"Empty\",\r\n \"diskSizeGB\": 10\r\n }\r\n ]\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"test\",\r\n \"adminUsername\": \"localadmin\",\r\n \"adminPassword\": \"Bull_dog1\",\r\n \"windowsConfiguration\": {\r\n \"provisionVMAgent\": true\r\n }\r\n },\r\n \"networkProfile\": {\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579\"\r\n }\r\n ]\r\n },\r\n \"diagnosticsProfile\": {\r\n \"bootDiagnostics\": {\r\n \"enabled\": true,\r\n \"storageUri\": \"https://stocrptestps579.blob.core.windows.net/\"\r\n }\r\n }\r\n }\r\n}", "RequestHeaders": { "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "1538" + "1534" ], "x-ms-client-request-id": [ - "4f07b769-62e3-49cd-b761-d80bf229a594" + "6957153e-2f88-4ee2-b389-b01160eee759" ], "accept-language": [ "en-US" @@ -1514,10 +1514,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"properties\": {\r\n \"vmId\": \"1d1b8293-a427-48d4-8a37-633e1726a2b3\",\r\n \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_A2\"\r\n },\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": \"MicrosoftWindowsServer\",\r\n \"offer\": \"WindowsServer\",\r\n \"sku\": \"2008-R2-SP1\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"osType\": \"Windows\",\r\n \"name\": \"osDisk\",\r\n \"createOption\": \"FromImage\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps6084.blob.core.windows.net/test/os.vhd\"\r\n },\r\n \"caching\": \"ReadWrite\"\r\n },\r\n \"dataDisks\": [\r\n {\r\n \"lun\": 1,\r\n \"name\": \"testDataDisk1\",\r\n \"createOption\": \"Empty\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps6084.blob.core.windows.net/test/data1.vhd\"\r\n },\r\n \"caching\": \"ReadOnly\",\r\n \"diskSizeGB\": 10\r\n }\r\n ]\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"test\",\r\n \"adminUsername\": \"Foo12\",\r\n \"windowsConfiguration\": {\r\n \"provisionVMAgent\": true,\r\n \"enableAutomaticUpdates\": true\r\n },\r\n \"secrets\": []\r\n },\r\n \"networkProfile\": {\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084\"\r\n }\r\n ]\r\n },\r\n \"diagnosticsProfile\": {\r\n \"bootDiagnostics\": {\r\n \"enabled\": true,\r\n \"storageUri\": \"https://stocrptestps6084.blob.core.windows.net/\"\r\n }\r\n },\r\n \"provisioningState\": \"Creating\"\r\n },\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084\",\r\n \"name\": \"vmcrptestps6084\",\r\n \"type\": \"Microsoft.Compute/virtualMachines\",\r\n \"location\": \"eastus\"\r\n}", + "ResponseBody": "{\r\n \"properties\": {\r\n \"vmId\": \"234cc10e-efa5-484d-8ee3-3cd50a02e176\",\r\n \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_A2\"\r\n },\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": \"MicrosoftWindowsServer\",\r\n \"offer\": \"WindowsServer\",\r\n \"sku\": \"2012-R2-Datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"osType\": \"Windows\",\r\n \"name\": \"osDisk\",\r\n \"createOption\": \"FromImage\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps579.blob.core.windows.net/test/os.vhd\"\r\n },\r\n \"caching\": \"ReadWrite\"\r\n },\r\n \"dataDisks\": [\r\n {\r\n \"lun\": 1,\r\n \"name\": \"testDataDisk1\",\r\n \"createOption\": \"Empty\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps579.blob.core.windows.net/test/data1.vhd\"\r\n },\r\n \"caching\": \"ReadOnly\",\r\n \"diskSizeGB\": 10\r\n }\r\n ]\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"test\",\r\n \"adminUsername\": \"localadmin\",\r\n \"windowsConfiguration\": {\r\n \"provisionVMAgent\": true,\r\n \"enableAutomaticUpdates\": true\r\n },\r\n \"secrets\": []\r\n },\r\n \"networkProfile\": {\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579\"\r\n }\r\n ]\r\n },\r\n \"diagnosticsProfile\": {\r\n \"bootDiagnostics\": {\r\n \"enabled\": true,\r\n \"storageUri\": \"https://stocrptestps579.blob.core.windows.net/\"\r\n }\r\n },\r\n \"provisioningState\": \"Creating\"\r\n },\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579\",\r\n \"name\": \"vmcrptestps579\",\r\n \"type\": \"Microsoft.Compute/virtualMachines\",\r\n \"location\": \"eastus\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "1848" + "1852" ], "Content-Type": [ "application/json; charset=utf-8" @@ -1529,16 +1529,16 @@ "no-cache" ], "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15" + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "87a5ea0d-cec5-4583-9bcd-659a81771952" + "a364214c-6dac-43c8-8a4a-40ad06a32217" ], "Cache-Control": [ "no-cache" @@ -1551,20 +1551,20 @@ "1199" ], "x-ms-correlation-request-id": [ - "0eedce99-3d2b-4c2f-99a1-6535d41fffcc" + "ef320d08-6404-47d8-81cb-a0ffa6390c27" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T001652Z:0eedce99-3d2b-4c2f-99a1-6535d41fffcc" + "WESTUS:20160220T020425Z:ef320d08-6404-47d8-81cb-a0ffa6390c27" ], "Date": [ - "Sat, 19 Dec 2015 00:16:51 GMT" + "Sat, 20 Feb 2016 02:04:25 GMT" ] }, "StatusCode": 201 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -1572,7 +1572,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -1590,10 +1590,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "a3323ddc-8701-4ebe-9f1c-026119f2c4cd" + "6ef27db5-fdde-44b8-ae51-3e61ebdec35a" ], "Cache-Control": [ "no-cache" @@ -1603,23 +1603,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14999" + "14990" ], "x-ms-correlation-request-id": [ - "2ec71ccb-7f6c-45d3-802a-1d3a0c090baa" + "a07d7cf3-6876-49d2-93b9-b0eca2010742" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T001722Z:2ec71ccb-7f6c-45d3-802a-1d3a0c090baa" + "WESTUS:20160220T020455Z:a07d7cf3-6876-49d2-93b9-b0eca2010742" ], "Date": [ - "Sat, 19 Dec 2015 00:17:21 GMT" + "Sat, 20 Feb 2016 02:04:55 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -1627,7 +1627,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -1645,10 +1645,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "f1f5c5e9-87e6-4eac-8b2f-8bfa5db2176a" + "ea87f6bc-ee04-4061-9162-35459a0116ca" ], "Cache-Control": [ "no-cache" @@ -1658,23 +1658,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14998" + "14989" ], "x-ms-correlation-request-id": [ - "168a4750-e127-44c0-9642-b6d966507736" + "6fe61936-159e-483f-9216-7c02850159ea" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T001752Z:168a4750-e127-44c0-9642-b6d966507736" + "WESTUS:20160220T020525Z:6fe61936-159e-483f-9216-7c02850159ea" ], "Date": [ - "Sat, 19 Dec 2015 00:17:52 GMT" + "Sat, 20 Feb 2016 02:05:25 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -1682,7 +1682,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -1700,10 +1700,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "ce55cf6b-e9b3-4cfb-b805-ef477e757179" + "749b2d5b-b952-4a10-863e-01d8ca67b0a9" ], "Cache-Control": [ "no-cache" @@ -1713,23 +1713,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14997" + "14988" ], "x-ms-correlation-request-id": [ - "98b34801-9567-46c1-b428-f4f17a113ea8" + "79072196-94a7-4f96-aafd-99ba8b4043af" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T001822Z:98b34801-9567-46c1-b428-f4f17a113ea8" + "WESTUS:20160220T020556Z:79072196-94a7-4f96-aafd-99ba8b4043af" ], "Date": [ - "Sat, 19 Dec 2015 00:18:22 GMT" + "Sat, 20 Feb 2016 02:05:55 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -1737,7 +1737,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -1755,10 +1755,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "64abe63a-308c-47de-903b-ca18985b6865" + "0234ea30-effd-48d3-9df4-536d1e867d69" ], "Cache-Control": [ "no-cache" @@ -1768,23 +1768,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14996" + "14987" ], "x-ms-correlation-request-id": [ - "f812687f-aad4-4686-a3bd-fd90757bc260" + "5ac3bec9-0db3-4617-91ac-f39fd6a2e58b" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T001853Z:f812687f-aad4-4686-a3bd-fd90757bc260" + "WESTUS:20160220T020626Z:5ac3bec9-0db3-4617-91ac-f39fd6a2e58b" ], "Date": [ - "Sat, 19 Dec 2015 00:18:52 GMT" + "Sat, 20 Feb 2016 02:06:25 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -1792,7 +1792,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -1810,10 +1810,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "95c81f78-029e-4e02-adcd-b7561feea748" + "0620b99a-cebc-4cd3-8e14-d559f580c2d9" ], "Cache-Control": [ "no-cache" @@ -1823,23 +1823,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14995" + "14986" ], "x-ms-correlation-request-id": [ - "21e225c3-c607-4425-9156-099fcce2b2cf" + "1fa4bfae-07da-407a-bf8f-be878642f7c3" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T001923Z:21e225c3-c607-4425-9156-099fcce2b2cf" + "WESTUS:20160220T020656Z:1fa4bfae-07da-407a-bf8f-be878642f7c3" ], "Date": [ - "Sat, 19 Dec 2015 00:19:22 GMT" + "Sat, 20 Feb 2016 02:06:55 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -1847,7 +1847,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -1865,10 +1865,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "7c6c107d-d3da-4e17-bf3e-e021ba693bc2" + "493765a2-a881-4438-8d98-ddd2ea468247" ], "Cache-Control": [ "no-cache" @@ -1878,23 +1878,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14994" + "14985" ], "x-ms-correlation-request-id": [ - "8d46089b-7efc-4196-9e8e-28b44a24b8d6" + "622a0da4-f1f5-4c6e-b552-e66dc322e065" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T001953Z:8d46089b-7efc-4196-9e8e-28b44a24b8d6" + "WESTUS:20160220T020726Z:622a0da4-f1f5-4c6e-b552-e66dc322e065" ], "Date": [ - "Sat, 19 Dec 2015 00:19:53 GMT" + "Sat, 20 Feb 2016 02:07:25 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -1902,7 +1902,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -1920,10 +1920,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "beef605c-ccd2-4015-ae2a-b3e192c70b41" + "bce81b31-aa8c-43f8-b4fb-c425b0ce11d7" ], "Cache-Control": [ "no-cache" @@ -1933,23 +1933,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14993" + "14984" ], "x-ms-correlation-request-id": [ - "d4f3e00a-d786-40b0-ac85-ba96afeff7da" + "42a6a5ec-9d48-4b76-bedd-397960957320" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002023Z:d4f3e00a-d786-40b0-ac85-ba96afeff7da" + "WESTUS:20160220T020756Z:42a6a5ec-9d48-4b76-bedd-397960957320" ], "Date": [ - "Sat, 19 Dec 2015 00:20:22 GMT" + "Sat, 20 Feb 2016 02:07:55 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -1957,7 +1957,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -1975,10 +1975,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "3d0590a5-cb0e-48ed-88f6-90b852f7167e" + "c4ab1637-672b-428b-9d29-625582414ba7" ], "Cache-Control": [ "no-cache" @@ -1988,23 +1988,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14992" + "14983" ], "x-ms-correlation-request-id": [ - "f34beedb-7d8d-4639-9250-22b40789de72" + "ec1ee7dc-aaaf-4097-8d6c-75c41db218ba" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002053Z:f34beedb-7d8d-4639-9250-22b40789de72" + "WESTUS:20160220T020826Z:ec1ee7dc-aaaf-4097-8d6c-75c41db218ba" ], "Date": [ - "Sat, 19 Dec 2015 00:20:53 GMT" + "Sat, 20 Feb 2016 02:08:25 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/a364214c-6dac-43c8-8a4a-40ad06a32217?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYTM2NDIxNGMtNmRhYy00M2M4LThhNGEtNDBhZDA2YTMyMjE3P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2012,10 +2012,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"a364214c-6dac-43c8-8a4a-40ad06a32217\",\r\n \"status\": \"Succeeded\",\r\n \"startTime\": \"2016-02-19T18:04:23.6378799-08:00\",\r\n \"endTime\": \"2016-02-19T18:08:53.0446424-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "141" + "191" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2030,10 +2030,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "d8f18c89-20fa-4e86-81f2-2d22fa00561b" + "fdcb24c7-4296-4386-a9eb-06feda5b4b9a" ], "Cache-Control": [ "no-cache" @@ -2043,23 +2043,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14991" + "14982" ], "x-ms-correlation-request-id": [ - "2bd32603-b0d0-4558-a0bd-da1943559668" + "2e0fc51b-d155-49db-8a66-ce3bb266e137" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002123Z:2bd32603-b0d0-4558-a0bd-da1943559668" + "WESTUS:20160220T020856Z:2e0fc51b-d155-49db-8a66-ce3bb266e137" ], "Date": [ - "Sat, 19 Dec 2015 00:21:23 GMT" + "Sat, 20 Feb 2016 02:08:56 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5P2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2067,10 +2067,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"properties\": {\r\n \"vmId\": \"234cc10e-efa5-484d-8ee3-3cd50a02e176\",\r\n \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_A2\"\r\n },\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": \"MicrosoftWindowsServer\",\r\n \"offer\": \"WindowsServer\",\r\n \"sku\": \"2012-R2-Datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"osType\": \"Windows\",\r\n \"name\": \"osDisk\",\r\n \"createOption\": \"FromImage\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps579.blob.core.windows.net/test/os.vhd\"\r\n },\r\n \"caching\": \"ReadWrite\"\r\n },\r\n \"dataDisks\": [\r\n {\r\n \"lun\": 1,\r\n \"name\": \"testDataDisk1\",\r\n \"createOption\": \"Empty\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps579.blob.core.windows.net/test/data1.vhd\"\r\n },\r\n \"caching\": \"ReadOnly\",\r\n \"diskSizeGB\": 10\r\n }\r\n ]\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"test\",\r\n \"adminUsername\": \"localadmin\",\r\n \"windowsConfiguration\": {\r\n \"provisionVMAgent\": true,\r\n \"enableAutomaticUpdates\": true\r\n },\r\n \"secrets\": []\r\n },\r\n \"networkProfile\": {\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Network/networkInterfaces/niccrptestps579\"\r\n }\r\n ]\r\n },\r\n \"diagnosticsProfile\": {\r\n \"bootDiagnostics\": {\r\n \"enabled\": true,\r\n \"storageUri\": \"https://stocrptestps579.blob.core.windows.net/\"\r\n }\r\n },\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579\",\r\n \"name\": \"vmcrptestps579\",\r\n \"type\": \"Microsoft.Compute/virtualMachines\",\r\n \"location\": \"eastus\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "141" + "1853" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2085,10 +2085,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "26481c16-9e0e-4e8c-ba84-1205dcdad127" + "f3557fdb-34c7-4c05-a2f0-32c42f4929ae" ], "Cache-Control": [ "no-cache" @@ -2098,34 +2098,40 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14990" + "14981" ], "x-ms-correlation-request-id": [ - "239883dd-85bf-436b-a093-c22c25a1fafb" + "ace13c65-a8f1-4450-b07a-877749a9b4e5" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002155Z:239883dd-85bf-436b-a093-c22c25a1fafb" + "WESTUS:20160220T020856Z:ace13c65-a8f1-4450-b07a-877749a9b4e5" ], "Date": [ - "Sat, 19 Dec 2015 00:21:55 GMT" + "Sat, 20 Feb 2016 02:08:56 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/publishers?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL3B1Ymxpc2hlcnM/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { + "x-ms-client-request-id": [ + "c83df8b5-5ad6-48db-960a-0995a39e6da1" + ], + "accept-language": [ + "en-US" + ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "[\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"4psa\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/4psa\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"4ward365\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/4ward365\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"7isolutions\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/7isolutions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"a10networks\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/a10networks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"abiquo\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/abiquo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Acronis\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Acronis\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Acronis2\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Acronis2\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"active-navigation\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/active-navigation\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"activeeon\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/activeeon\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adam-software\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/adam-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adatao\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/adatao\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adobe\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/adobe\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adobe_test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/adobe_test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adra-match\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/adra-match\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"advantech\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/advantech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"advantech-webaccess\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/advantech-webaccess\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aerospike\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/aerospike\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aimsinnovation\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/aimsinnovation\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aiscaler-cache-control-ddos-and-url-rewriting-\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/aiscaler-cache-control-ddos-and-url-rewriting-\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"alachisoft\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/alachisoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"alertlogic\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/alertlogic\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"AlertLogic.Extension\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/AlertLogic.Extension\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"algebraix-data\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/algebraix-data\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"alldigital-brevity\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/alldigital-brevity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"alteryx\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/alteryx\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"altiar\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/altiar\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appcelerator\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/appcelerator\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appcitoinc\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/appcitoinc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appex-networks\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/appex-networks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appistry\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/appistry\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"apprenda\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/apprenda\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appveyorci\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/appveyorci\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appzero\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/appzero\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"arangodb\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/arangodb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aras\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/aras\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"array_networks\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/array_networks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aspex-managed-cloud\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/aspex-managed-cloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"attunity_cloudbeam\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/attunity_cloudbeam\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"auriq-systems\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/auriq-systems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"avepoint\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/avepoint\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aviatrix-systems\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/aviatrix-systems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"awingu\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/awingu\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"axway\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/axway\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"azul\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/azul\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"AzureRT.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/AzureRT.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"azuresyncfusion\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/azuresyncfusion\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Barracuda.Azure.ConnectivityAgent\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Barracuda.Azure.ConnectivityAgent\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"barracudanetworks\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/barracudanetworks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"basho\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/basho\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Bitnami\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Bitnami\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bizagi\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/bizagi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"biztalk360\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/biztalk360\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"blackberry\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/blackberry\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bluetalon\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/bluetalon\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"boundlessgeo\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/boundlessgeo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"boxless\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/boxless\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"brocade_communications\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/brocade_communications\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bryte\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/bryte\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bssw\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/bssw\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"buddhalabs\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/buddhalabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bwappengine\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/bwappengine\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Canonical\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"caringo\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/caringo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"catechnologies\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/catechnologies\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cautelalabs\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cautelalabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cds\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cds\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"certivox\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/certivox\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"checkpoint\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/checkpoint\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"checkpointsystems\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/checkpointsystems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"chef-software\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/chef-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Chef.Bootstrap.WindowsAzure\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Chef.Bootstrap.WindowsAzure\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cherwell\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cherwell\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"circleci\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/circleci\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cires21\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cires21\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cisco\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cisco\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"citrix\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/citrix\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"clickberry\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/clickberry\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloud-cruiser\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloud-cruiser\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudbees\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudbees\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudbees-enterprise-jenkins\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudbees-enterprise-jenkins\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudbolt-software\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudbolt-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudboost\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudboost\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudera\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudera\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudera1qaz2wsx\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudera1qaz2wsx\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudhouse\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudhouse\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudlink\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudlink\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CloudLink.SecureVM\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/CloudLink.SecureVM\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CloudLinkEMC.SecureVM\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/CloudLinkEMC.SecureVM\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CloudLinkEMC.SecureVM.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/CloudLinkEMC.SecureVM.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudsoft\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudsoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"clustrix\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/clustrix\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"codelathe\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/codelathe\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cohesive\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cohesive\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"commvault\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/commvault\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Confer\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Confer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Confer.TestSensor\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Confer.TestSensor\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"consensys\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/consensys\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cordis\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cordis\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"corent-technology-pvt\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/corent-technology-pvt\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CoreOS\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/CoreOS\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cortical-io\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/cortical-io\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"couchbase\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/couchbase\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"credativ\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/credativ\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Dans.Windows.App\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Dans.Windows.App\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Dans2.Windows.App\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Dans2.Windows.App\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Dans3.Windows.App\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Dans3.Windows.App\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dataart\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dataart\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"datacastle\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/datacastle\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Datadog.Agent\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Datadog.Agent\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dataexpeditioninc\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dataexpeditioninc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dataiku\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dataiku\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"datalayer\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/datalayer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dataliberation\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dataliberation\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"datastax\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/datastax\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"datasunrise\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/datasunrise\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"defacto_global_\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/defacto_global_\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dell-software\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dell-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dell_software\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dell_software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"denyall\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/denyall\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"derdack\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/derdack\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dgsecure\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dgsecure\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"docker\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/docker\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"docscorp-us\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/docscorp-us\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dolbydeveloper\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dolbydeveloper\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dome9\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dome9\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"donovapub\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/donovapub\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"drone\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/drone\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dundas\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dundas\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dynatrace.ruxit\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/dynatrace.ruxit\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"easyterritory\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/easyterritory\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"edevtech\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/edevtech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"egress\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/egress\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eip\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/eip\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eip-eipower\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/eip-eipower\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"elastacloud\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/elastacloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"elasticbox\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/elasticbox\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"elfiqnetworks\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/elfiqnetworks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eloquera\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/eloquera\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eperi\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/eperi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"equilibrium\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/equilibrium\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ESET\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/ESET\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ESET.FileSecurity\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/ESET.FileSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"esri\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/esri\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eurotech\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/eurotech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"exasol\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/exasol\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"exit-games\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/exit-games\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"expertime\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/expertime\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"f5-networks\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/f5-networks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"filebridge\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/filebridge\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"firehost\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/firehost\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"flexerasoftware\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/flexerasoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"foghorn-systems\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/foghorn-systems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"forscene\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/forscene\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"fortinet\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/fortinet\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"fortycloud\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/fortycloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"fw\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/fw\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"g-data-software\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/g-data-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"gemalto-safenet\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/gemalto-safenet\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Gemalto.SafeNet.ProtectV\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Gemalto.SafeNet.ProtectV\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"GitHub\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/GitHub\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"greathorn\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/greathorn\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"greensql\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/greensql\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"haivision\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/haivision\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"halobicloud\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/halobicloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"hanu\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/hanu\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"hewlett-packard\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/hewlett-packard\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"hortonworks\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/hortonworks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"iaansys\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/iaansys\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"iamcloud\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/iamcloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ibabs-eu\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/ibabs-eu\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"imaginecommunications\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/imaginecommunications\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"imc\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/imc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"imperva\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/imperva\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"incredibuild\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/incredibuild\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"infolibrarian\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/infolibrarian\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"informatica\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/informatica\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"informatica-cloud\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/informatica-cloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"infostrat\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/infostrat\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"intel\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/intel\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"intelligent-plant-ltd\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/intelligent-plant-ltd\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"iquest\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/iquest\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ishlangu-load-balancer-adc\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/ishlangu-load-balancer-adc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"itelios\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/itelios\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jedox\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/jedox\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jelastic\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/jelastic\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jetnexus\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/jetnexus\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jfrog\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/jfrog\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jitterbit_integration\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/jitterbit_integration\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kaazing\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/kaazing\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kaspersky_lab\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/kaspersky_lab\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kemptech\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/kemptech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kepion\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/kepion\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kollective\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/kollective\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"le\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/le\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"lieberlieber\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/lieberlieber\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"liebsoft\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/liebsoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"literatu\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/literatu\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"loadbalancer\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/loadbalancer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"LocalTest.TrendMicro.DeepSecurity\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/LocalTest.TrendMicro.DeepSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"logi-analytics\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/logi-analytics\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"loginpeople\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/loginpeople\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"logtrust\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/logtrust\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"looker\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/looker\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"luxoft\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/luxoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"magelia\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/magelia\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"manageengine\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/manageengine\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mariadb\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mariadb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"massiveanalytic-\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/massiveanalytic-\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"McAfee.EndpointSecurity\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/McAfee.EndpointSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"McAfee.EndpointSecurity.test3\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/McAfee.EndpointSecurity.test3\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"meanio\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/meanio\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mediazenie\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mediazenie\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"memsql\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/memsql\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mendix\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mendix\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mentalnotes\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mentalnotes\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mesosphere\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mesosphere\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"metavistech\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/metavistech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mfiles\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mfiles\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"microsoft-ads\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/microsoft-ads\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"microsoft-r-products\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/microsoft-r-products\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Applications\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Applications\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Backup.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Backup.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Diagnostics\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Diagnostics\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Extensions\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Extensions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.RecoveryServices\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.RecoveryServices\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Security\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Security\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Security.Internal\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Security.Internal\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.SiteRecovery.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.SiteRecovery.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.WindowsFabric.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.WindowsFabric.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.AzureCAT.AzureEnhancedMonitoring\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.AzureCAT.AzureEnhancedMonitoring\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.AzureCAT.AzureEnhancedMonitoringTest\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.AzureCAT.AzureEnhancedMonitoringTest\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Compute\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.EnterpriseCloud.Monitoring\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.EnterpriseCloud.Monitoring\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.EnterpriseCloud.Monitoring.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.EnterpriseCloud.Monitoring.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.HpcCompute\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.HpcCompute\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.HpcPack\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.HpcPack\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.OSTCExtensions\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.OSTCExtensions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.OSTCExtensions.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.OSTCExtensions.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Install\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Install\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Internal\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Internal\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.PaaS\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.PaaS\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Preview\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Preview\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Release.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Release.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Telemetry\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Telemetry\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test.0\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test.0\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test.1\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test.1\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test0\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test0\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test2\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test2\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test3\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test3\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.UtcTest\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.UtcTest\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Wmf\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Wmf\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Wmf4Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Wmf4Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Wmf5\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Wmf5\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.WmfRTM\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.WmfRTM\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.SqlServer.Managability.IaaS.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.SqlServer.Managability.IaaS.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.SqlServer.Management\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.SqlServer.Management\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.SystemCenter\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.SystemCenter\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.ETWTraceListenerService\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.Azure.ETWTraceListenerService\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.RemoteDebug\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.Azure.RemoteDebug\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.RemoteDebug.Json\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.Azure.RemoteDebug.Json\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.ServiceProfiler\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.ServiceProfiler\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.ServiceProfiler.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.ServiceProfiler.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Windows.AzureRemoteApp.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Windows.AzureRemoteApp.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Windows.RemoteDesktop\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Windows.RemoteDesktop\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.WindowsAzure.Compute\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.WindowsAzure.Compute\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftAzureSiteRecovery\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftAzureSiteRecovery\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftBizTalkServer\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftBizTalkServer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftDynamicsAX\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftDynamicsAX\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftDynamicsGP\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftDynamicsGP\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftDynamicsNAV\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftDynamicsNAV\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftHybridCloudStorage\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftHybridCloudStorage\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftSharePoint\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftSharePoint\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftSQLServer\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftSQLServer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftVisualStudio\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftVisualStudio\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftWindowsServer\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftWindowsServerEssentials\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServerEssentials\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftWindowsServerHPCPack\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServerHPCPack\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftWindowsServerRemoteDesktop\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServerRemoteDesktop\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"midvision\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/midvision\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"miracl_linux\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/miracl_linux\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mokxa-technologies\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mokxa-technologies\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"moviemasher\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/moviemasher\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"msopentech\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/msopentech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MSOpenTech.Extensions\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/MSOpenTech.Extensions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"msrazuresapservices\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/msrazuresapservices\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mtnfog\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mtnfog\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mvp-systems\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mvp-systems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mxhero\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/mxhero\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nasuni\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/nasuni\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ncbi\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/ncbi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"netapp\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/netapp\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"new-signature\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/new-signature\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nextlimit\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/nextlimit\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nexus\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/nexus\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nginxinc\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/nginxinc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nicepeopleatwork\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/nicepeopleatwork\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nodejsapi\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/nodejsapi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nuxeo\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/nuxeo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"officeclipsuite\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/officeclipsuite\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"op5\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/op5\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"opencell\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/opencell\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"OpenLogic\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/OpenLogic\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"openmeap\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/openmeap\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"opennebulasystems\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/opennebulasystems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"opentext\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/opentext\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Oracle\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Oracle\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"orientdb\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/orientdb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"osisoft\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/osisoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"outsystems\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/outsystems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"panzura-file-system\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/panzura-file-system\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"pointmatter\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/pointmatter\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"predictionio\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/predictionio\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"predixion\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/predixion\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"prestashop\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/prestashop\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"prime-strategy\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/prime-strategy\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"primestream\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/primestream\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"profisee\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/profisee\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ptv_group\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/ptv_group\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"PuppetLabs\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/PuppetLabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"PuppetLabs.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/PuppetLabs.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"pxlag_swiss\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/pxlag_swiss\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"quasardb\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/quasardb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"rancher\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/rancher\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"RedHat\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/RedHat\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"redpoint-global\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/redpoint-global\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"remotelearner\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/remotelearner\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"revolution-analytics\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/revolution-analytics\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"RightScaleLinux\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/RightScaleLinux\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"RightScaleWindowsServer\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/RightScaleWindowsServer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"riverbed\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/riverbed\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"RiverbedTechnology\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/RiverbedTechnology\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"rocketsoftware\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/rocketsoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"rocket_software\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/rocket_software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"saama\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/saama\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"saltstack\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/saltstack\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sap\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sap\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"scalearc\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/scalearc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"scalebase\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/scalebase\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"seagate\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/seagate\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"searchblox\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/searchblox\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sensorberg\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sensorberg\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"servoy\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/servoy\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sharefile\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sharefile\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"shavlik\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/shavlik\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sightapps\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sightapps\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sinefa\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sinefa\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sios_datakeeper\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sios_datakeeper\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sisense\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sisense\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"snip2code\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/snip2code\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"softnas\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/softnas\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"soha\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/soha\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"solanolabs\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/solanolabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"spacecurve\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/spacecurve\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"spagobi\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/spagobi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sphere3d\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sphere3d\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stackato-platform-as-a-service\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/stackato-platform-as-a-service\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stackstorm\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/stackstorm\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"starwind\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/starwind\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"steelhive\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/steelhive\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stonefly\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/stonefly\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stormshield\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/stormshield\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"storreduce\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/storreduce\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stratalux\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/stratalux\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sunview-software\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/sunview-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"SUSE\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/SUSE\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Symantec\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Symantec\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Symantec.QA\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Symantec.QA\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Symantec.staging\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Symantec.staging\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Symantec.test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Symantec.test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tactic\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/tactic\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"talon\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/talon\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"targit\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/targit\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tavendo\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/tavendo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"techdivision\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/techdivision\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"telepat\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/telepat\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tenable\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/tenable\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tentity\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/tentity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.Barracuda.Azure.ConnectivityAgent\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.Barracuda.Azure.ConnectivityAgent\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.Gemalto.SafeNet.ProtectV\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.Gemalto.SafeNet.ProtectV\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.Gemalto.SafeNet.ProtectV.Azure\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.Gemalto.SafeNet.ProtectV.Azure\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.HP.AppDefender\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.HP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.NJHP.AppDefender\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.NJHP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.TrendMicro.DeepSecurity\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.TrendMicro.DeepSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.TrendMicro.DeepSecurity2\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.TrendMicro.DeepSecurity2\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.TrendMicro.DeepSecurity3\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.TrendMicro.DeepSecurity3\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test1.NJHP.AppDefender\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test1.NJHP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"thinkboxsoftware\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/thinkboxsoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"topdesk\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/topdesk\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"torusware\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/torusware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"transvault\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/transvault\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"trendmicro\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/trendmicro\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"TrendMicro.DeepSecurity\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/TrendMicro.DeepSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"TrendMicro.DeepSecurity.Test2\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/TrendMicro.DeepSecurity.Test2\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"TrendMicro.PortalProtect\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/TrendMicro.PortalProtect\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tsa-public-service\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/tsa-public-service\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"typesafe\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/typesafe\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ubercloud\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/ubercloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"unidesk\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/unidesk\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"unidesk-corp\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/unidesk-corp\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"usp\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/usp\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vbot\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/vbot\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vecompsoftware\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/vecompsoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"veeam\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/veeam\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vidispine\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/vidispine\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vidizmo\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/vidizmo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vircom\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/vircom\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"virtualworks\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/virtualworks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vision_solutions\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/vision_solutions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vmturbo\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/vmturbo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Vormetric\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Vormetric\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Vormetric.VormetricTransparentEncryption\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Vormetric.VormetricTransparentEncryption\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vte\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/vte\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"WAD-VMSS.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/WAD-VMSS.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"WAD2AI.Diagnostics.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/WAD2AI.Diagnostics.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"WADVMSS.Test\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/WADVMSS.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"waratek\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/waratek\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"warewolf-esb\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/warewolf-esb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"watchfulsoftware\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/watchfulsoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"websense-apmailpe\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/websense-apmailpe\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"wmspanel\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/wmspanel\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"workshare-technology\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/workshare-technology\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"wowza\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/wowza\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xebialabs\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/xebialabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xfinityinc\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/xfinityinc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xmpro\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/xmpro\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xrm\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/xrm\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xtremedata\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/xtremedata\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"yellowfin\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/yellowfin\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"your-shop-online\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/your-shop-online\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"zementis\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/zementis\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"zend\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/zend\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"zoomdata\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/zoomdata\"\r\n }\r\n]", "ResponseHeaders": { "Content-Length": [ - "141" + "76443" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2139,11 +2145,8 @@ "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], "x-ms-request-id": [ - "9cadda64-1157-4dd4-8eb0-b384b2d61116" + "73dd47aa-ed5f-44c4-81ca-91b067be0d89" ], "Cache-Control": [ "no-cache" @@ -2153,34 +2156,40 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14989" + "14980" ], "x-ms-correlation-request-id": [ - "ebfba4d4-d1fc-4fc6-8714-b0e5b8d4b622" + "25690bde-7433-4746-b84b-2ff156bec1e1" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002225Z:ebfba4d4-d1fc-4fc6-8714-b0e5b8d4b622" + "WESTUS:20160220T020857Z:25690bde-7433-4746-b84b-2ff156bec1e1" ], "Date": [ - "Sat, 19 Dec 2015 00:22:25 GMT" + "Sat, 20 Feb 2016 02:08:57 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/publishers/Microsoft.Compute/artifacttypes/vmextension/types?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL3B1Ymxpc2hlcnMvTWljcm9zb2Z0LkNvbXB1dGUvYXJ0aWZhY3R0eXBlcy92bWV4dGVuc2lvbi90eXBlcz9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { + "x-ms-client-request-id": [ + "6161dddf-3168-4fe5-9c7b-f45acb58a8fb" + ], + "accept-language": [ + "en-US" + ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "[\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"BGInfo\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/BGInfo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CustomScriptExtension\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/CustomScriptExtension\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"JsonADDomainExtension\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/JsonADDomainExtension\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"VMAccessAgent\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/VMAccessAgent\"\r\n }\r\n]", "ResponseHeaders": { "Content-Length": [ - "141" + "1033" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2194,11 +2203,8 @@ "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], "x-ms-request-id": [ - "6d78efd0-960d-4edc-8f71-e685dd687c7b" + "46e838e0-94a1-462c-a562-58a8b35f4e89" ], "Cache-Control": [ "no-cache" @@ -2208,34 +2214,40 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14988" + "14979" ], "x-ms-correlation-request-id": [ - "9ce609b9-3239-4015-aef9-3eed1a4904bb" + "6a9f23da-fc56-4044-982b-8d2c3607f166" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002255Z:9ce609b9-3239-4015-aef9-3eed1a4904bb" + "WESTUS:20160220T020857Z:6a9f23da-fc56-4044-982b-8d2c3607f166" ], "Date": [ - "Sat, 19 Dec 2015 00:22:55 GMT" + "Sat, 20 Feb 2016 02:08:57 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/publishers/Microsoft.Compute/artifacttypes/vmextension/types/BGInfo/versions?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL3B1Ymxpc2hlcnMvTWljcm9zb2Z0LkNvbXB1dGUvYXJ0aWZhY3R0eXBlcy92bWV4dGVuc2lvbi90eXBlcy9CR0luZm8vdmVyc2lvbnM/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { + "x-ms-client-request-id": [ + "4200b349-ad55-4a4e-b3c6-7072678d073b" + ], + "accept-language": [ + "en-US" + ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "[\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"2.1\",\r\n \"id\": \"/Subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/BGInfo/Versions/2.1\"\r\n }\r\n]", "ResponseHeaders": { "Content-Length": [ - "141" + "252" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2249,11 +2261,8 @@ "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], "x-ms-request-id": [ - "73326652-1b00-42e4-9fc0-a49ef3f66261" + "70ec9156-29b8-47af-883c-69c65ed610ca" ], "Cache-Control": [ "no-cache" @@ -2263,34 +2272,46 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14987" + "14978" ], "x-ms-correlation-request-id": [ - "a2ffaccd-d435-48d9-81cf-8073c7b07095" + "76d45248-cd89-4458-be31-c646401e90e1" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002325Z:a2ffaccd-d435-48d9-81cf-8073c7b07095" + "WESTUS:20160220T020858Z:76d45248-cd89-4458-be31-c646401e90e1" ], "Date": [ - "Sat, 19 Dec 2015 00:23:25 GMT" + "Sat, 20 Feb 2016 02:08:57 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/BGInfo?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5L2V4dGVuc2lvbnMvQkdJbmZvP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Compute\",\r\n \"type\": \"BGInfo\",\r\n \"typeHandlerVersion\": \"2.1\",\r\n \"autoUpgradeMinorVersion\": true\r\n }\r\n}", "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "187" + ], + "x-ms-client-request-id": [ + "7a36ae93-a590-4037-a14e-58f57e2b143d" + ], + "accept-language": [ + "en-US" + ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\"\r\n}", + "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Compute\",\r\n \"type\": \"BGInfo\",\r\n \"typeHandlerVersion\": \"2.1\",\r\n \"autoUpgradeMinorVersion\": true,\r\n \"provisioningState\": \"Creating\"\r\n },\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/BGInfo\",\r\n \"name\": \"BGInfo\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "141" + "473" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2301,14 +2322,17 @@ "Pragma": [ "no-cache" ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "25742cf5-acc6-445c-b056-aedadcf4b715" + "5ec54a06-6198-4cdd-891e-965df8a599d1" ], "Cache-Control": [ "no-cache" @@ -2317,24 +2341,24 @@ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14986" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1198" ], "x-ms-correlation-request-id": [ - "9b4acbd7-982f-48f9-97d1-a686a0d01728" + "01fa9435-49fe-44aa-b424-dd7089108cbb" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002355Z:9b4acbd7-982f-48f9-97d1-a686a0d01728" + "WESTUS:20160220T020900Z:01fa9435-49fe-44aa-b424-dd7089108cbb" ], "Date": [ - "Sat, 19 Dec 2015 00:23:55 GMT" + "Sat, 20 Feb 2016 02:09:00 GMT" ] }, - "StatusCode": 200 + "StatusCode": 201 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/87a5ea0d-cec5-4583-9bcd-659a81771952?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvODdhNWVhMGQtY2VjNS00NTgzLTliY2QtNjU5YTgxNzcxOTUyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2342,10 +2366,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"87a5ea0d-cec5-4583-9bcd-659a81771952\",\r\n \"status\": \"Succeeded\",\r\n \"startTime\": \"2015-12-18T16:16:51.4864422-08:00\",\r\n \"endTime\": \"2015-12-18T16:24:19.0049899-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "191" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2360,10 +2384,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "f430ae2f-c2c7-4db8-a82c-7e5f0ff88acc" + "86cbb1c3-605e-44fa-9262-1ed36985f9ed" ], "Cache-Control": [ "no-cache" @@ -2373,23 +2397,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14985" + "14977" ], "x-ms-correlation-request-id": [ - "d8653511-e936-4519-99fe-9def6639260b" + "94aad2ac-5310-4e44-b744-5ba9df14ecbb" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002425Z:d8653511-e936-4519-99fe-9def6639260b" + "WESTUS:20160220T020930Z:94aad2ac-5310-4e44-b744-5ba9df14ecbb" ], "Date": [ - "Sat, 19 Dec 2015 00:24:25 GMT" + "Sat, 20 Feb 2016 02:09:29 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy92bWNycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2397,10 +2421,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"properties\": {\r\n \"vmId\": \"1d1b8293-a427-48d4-8a37-633e1726a2b3\",\r\n \"hardwareProfile\": {\r\n \"vmSize\": \"Standard_A2\"\r\n },\r\n \"storageProfile\": {\r\n \"imageReference\": {\r\n \"publisher\": \"MicrosoftWindowsServer\",\r\n \"offer\": \"WindowsServer\",\r\n \"sku\": \"2008-R2-SP1\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"osType\": \"Windows\",\r\n \"name\": \"osDisk\",\r\n \"createOption\": \"FromImage\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps6084.blob.core.windows.net/test/os.vhd\"\r\n },\r\n \"caching\": \"ReadWrite\"\r\n },\r\n \"dataDisks\": [\r\n {\r\n \"lun\": 1,\r\n \"name\": \"testDataDisk1\",\r\n \"createOption\": \"Empty\",\r\n \"vhd\": {\r\n \"uri\": \"https://stocrptestps6084.blob.core.windows.net/test/data1.vhd\"\r\n },\r\n \"caching\": \"ReadOnly\",\r\n \"diskSizeGB\": 10\r\n }\r\n ]\r\n },\r\n \"osProfile\": {\r\n \"computerName\": \"test\",\r\n \"adminUsername\": \"Foo12\",\r\n \"windowsConfiguration\": {\r\n \"provisionVMAgent\": true,\r\n \"enableAutomaticUpdates\": true\r\n },\r\n \"secrets\": []\r\n },\r\n \"networkProfile\": {\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Network/networkInterfaces/niccrptestps6084\"\r\n }\r\n ]\r\n },\r\n \"diagnosticsProfile\": {\r\n \"bootDiagnostics\": {\r\n \"enabled\": true,\r\n \"storageUri\": \"https://stocrptestps6084.blob.core.windows.net/\"\r\n }\r\n },\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084\",\r\n \"name\": \"vmcrptestps6084\",\r\n \"type\": \"Microsoft.Compute/virtualMachines\",\r\n \"location\": \"eastus\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "1849" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2415,10 +2439,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "8e3ca521-6dc9-4b2f-b98b-6a905dfbcf2a" + "124f7830-c311-4f00-8451-1d409d69d67c" ], "Cache-Control": [ "no-cache" @@ -2428,40 +2452,34 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14984" + "14976" ], "x-ms-correlation-request-id": [ - "a06ff6a6-a0ec-4598-a536-7a40dc5fd638" + "0664e0bf-1263-4068-b04e-9c05218fbad9" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002425Z:a06ff6a6-a0ec-4598-a536-7a40dc5fd638" + "WESTUS:20160220T021000Z:0664e0bf-1263-4068-b04e-9c05218fbad9" ], "Date": [ - "Sat, 19 Dec 2015 00:24:25 GMT" + "Sat, 20 Feb 2016 02:10:00 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/publishers?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL3B1Ymxpc2hlcnM/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { - "x-ms-client-request-id": [ - "2866fb51-f068-457a-8908-4d25b3cfefef" - ], - "accept-language": [ - "en-US" - ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "[\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"4psa\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/4psa\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"4ward365\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/4ward365\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"7isolutions\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/7isolutions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"a10networks\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/a10networks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"abiquo\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/abiquo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"active-navigation\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/active-navigation\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"activeeon\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/activeeon\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adam-software\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/adam-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adatao\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/adatao\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adobe\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/adobe\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"adobe_test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/adobe_test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"advantech\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/advantech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"advantech-webaccess\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/advantech-webaccess\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aerospike\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/aerospike\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aimsinnovation\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/aimsinnovation\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aiscaler-cache-control-ddos-and-url-rewriting-\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/aiscaler-cache-control-ddos-and-url-rewriting-\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"alachisoft\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/alachisoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"alertlogic\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/alertlogic\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"AlertLogic.Extension\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/AlertLogic.Extension\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"algebraix-data\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/algebraix-data\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"alldigital-brevity\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/alldigital-brevity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"altiar\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/altiar\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appcelerator\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/appcelerator\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appcitoinc\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/appcitoinc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appex-networks\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/appex-networks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appistry\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/appistry\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"apprenda\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/apprenda\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appveyorci\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/appveyorci\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"appzero\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/appzero\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"arangodb\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/arangodb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aras\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/aras\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"array_networks\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/array_networks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aspex-managed-cloud\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/aspex-managed-cloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"attunity_cloudbeam\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/attunity_cloudbeam\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"auriq-systems\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/auriq-systems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"avepoint\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/avepoint\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"aviatrix-systems\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/aviatrix-systems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"awingu\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/awingu\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"azul\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/azul\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"AzureRT.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/AzureRT.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Barracuda.Azure.ConnectivityAgent\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Barracuda.Azure.ConnectivityAgent\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"barracudanetworks\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/barracudanetworks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"basho\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/basho\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Bitnami\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Bitnami\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bizagi\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/bizagi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"blackberry\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/blackberry\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bluetalon\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/bluetalon\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"boundlessgeo\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/boundlessgeo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"boxless\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/boxless\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"brocade_communications\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/brocade_communications\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bryte\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/bryte\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bssw\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/bssw\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"buddhalabs\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/buddhalabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"bwappengine\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/bwappengine\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Canonical\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Canonical\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"caringo\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/caringo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"catechnologies\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/catechnologies\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cautelalabs\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cautelalabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cds\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cds\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"certivox\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/certivox\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"checkpoint\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/checkpoint\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"checkpointsystems\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/checkpointsystems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"chef-software\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/chef-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Chef.Bootstrap.WindowsAzure\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Chef.Bootstrap.WindowsAzure\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"circleci\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/circleci\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cires21\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cires21\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cisco\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cisco\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"clickberry\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/clickberry\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloud-cruiser\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloud-cruiser\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudbees-enterprise-jenkins\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudbees-enterprise-jenkins\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudboost\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudboost\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudera\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudera\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudera1qaz2wsx\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudera1qaz2wsx\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudhouse\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudhouse\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudlink\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudlink\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CloudLink.SecureVM\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/CloudLink.SecureVM\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CloudLinkEMC.SecureVM\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/CloudLinkEMC.SecureVM\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CloudLinkEMC.SecureVM.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/CloudLinkEMC.SecureVM.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cloudsoft\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cloudsoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"clustrix\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/clustrix\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"codelathe\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/codelathe\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cohesive\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cohesive\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"commvault\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/commvault\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Confer\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Confer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Confer.TestSensor\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Confer.TestSensor\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cordis\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cordis\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"corent-technology-pvt\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/corent-technology-pvt\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CoreOS\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/CoreOS\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"cortical-io\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/cortical-io\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"couchbase\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/couchbase\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"credativ\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/credativ\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Dans.Windows.App\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Dans.Windows.App\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Dans2.Windows.App\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Dans2.Windows.App\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Dans3.Windows.App\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Dans3.Windows.App\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dataart\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dataart\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"datacastle\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/datacastle\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Datadog.Agent\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Datadog.Agent\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dataexpeditioninc\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dataexpeditioninc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"datalayer\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/datalayer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dataliberation\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dataliberation\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"datastax\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/datastax\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"datasunrise\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/datasunrise\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"defacto_global_\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/defacto_global_\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dell-software\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dell-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dell_software\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dell_software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"denyall\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/denyall\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"derdack\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/derdack\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dgsecure\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dgsecure\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"docker\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/docker\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dolbydeveloper\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dolbydeveloper\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"donovapub\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/donovapub\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"drone\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/drone\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dundas\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dundas\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"dynatrace.ruxit\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/dynatrace.ruxit\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"easyterritory\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/easyterritory\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"egress\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/egress\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eip\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/eip\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eip-eipower\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/eip-eipower\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"elastacloud\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/elastacloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"elasticbox\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/elasticbox\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"elfiqnetworks\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/elfiqnetworks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eloquera\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/eloquera\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eperi\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/eperi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"equilibrium\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/equilibrium\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ESET\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/ESET\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ESET.FileSecurity\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/ESET.FileSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"esri\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/esri\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"eurotech\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/eurotech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"exasol\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/exasol\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"exit-games\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/exit-games\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"expertime\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/expertime\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"f5-networks\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/f5-networks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"filebridge\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/filebridge\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"firehost\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/firehost\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"flexerasoftware\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/flexerasoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"foghorn-systems\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/foghorn-systems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"forscene\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/forscene\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"fortinet\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/fortinet\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"fortycloud\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/fortycloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"fw\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/fw\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"g-data-software\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/g-data-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"gemalto-safenet\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/gemalto-safenet\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Gemalto.SafeNet.ProtectV\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Gemalto.SafeNet.ProtectV\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"GitHub\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/GitHub\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"greathorn\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/greathorn\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"greensql\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/greensql\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"haivision\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/haivision\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"halobicloud\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/halobicloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"hanu\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/hanu\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"hewlett-packard\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/hewlett-packard\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"hortonworks\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/hortonworks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"iaansys\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/iaansys\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"iamcloud\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/iamcloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"imaginecommunications\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/imaginecommunications\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"imc\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/imc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"imperva\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/imperva\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"incredibuild\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/incredibuild\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"infolibrarian\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/infolibrarian\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"informatica\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/informatica\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"informatica-cloud\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/informatica-cloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"infostrat\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/infostrat\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"intel\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/intel\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"intelligent-plant-ltd\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/intelligent-plant-ltd\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"iquest\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/iquest\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ishlangu-load-balancer-adc\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/ishlangu-load-balancer-adc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"itelios\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/itelios\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jedox\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/jedox\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jelastic\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/jelastic\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jetnexus\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/jetnexus\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"jfrog\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/jfrog\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kaazing\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/kaazing\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kaspersky_lab\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/kaspersky_lab\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kemptech\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/kemptech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"kepion\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/kepion\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"le\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/le\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"lieberlieber\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/lieberlieber\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"liebsoft\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/liebsoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"literatu\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/literatu\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"loadbalancer\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/loadbalancer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"LocalTest.TrendMicro.DeepSecurity\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/LocalTest.TrendMicro.DeepSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"logi-analytics\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/logi-analytics\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"loginpeople\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/loginpeople\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"logtrust\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/logtrust\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"looker\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/looker\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"luxoft\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/luxoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"magelia\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/magelia\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"manageengine\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/manageengine\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"massiveanalytic-\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/massiveanalytic-\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"McAfee.EndpointSecurity\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/McAfee.EndpointSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"McAfee.EndpointSecurity.test3\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/McAfee.EndpointSecurity.test3\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"meanio\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/meanio\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"memsql\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/memsql\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mentalnotes\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/mentalnotes\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mesosphere\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/mesosphere\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"metavistech\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/metavistech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mfiles\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/mfiles\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"microsoft-ads\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/microsoft-ads\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Applications\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Applications\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Backup.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Backup.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Diagnostics\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Diagnostics\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Extensions\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Extensions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.RecoveryServices\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.RecoveryServices\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Security\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Security\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.Security.Internal\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.Security.Internal\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.SiteRecovery.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.SiteRecovery.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Azure.WindowsFabric.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Azure.WindowsFabric.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.AzureCAT.AzureEnhancedMonitoring\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.AzureCAT.AzureEnhancedMonitoring\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.AzureCAT.AzureEnhancedMonitoringTest\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.AzureCAT.AzureEnhancedMonitoringTest\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Compute\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.EnterpriseCloud.Monitoring\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.EnterpriseCloud.Monitoring\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.EnterpriseCloud.Monitoring.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.EnterpriseCloud.Monitoring.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.HpcCompute\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.HpcCompute\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.HpcPack\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.HpcPack\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.OSTCExtensions\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.OSTCExtensions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.OSTCExtensions.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.OSTCExtensions.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Install\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Install\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Internal\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Internal\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.PaaS\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.PaaS\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Preview\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Preview\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test0\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test0\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test2\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test2\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Test3\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Test3\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.UtcTest\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.UtcTest\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Wmf\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Wmf\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Wmf4Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Wmf4Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Powershell.Wmf5\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Powershell.Wmf5\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.SqlServer.Managability.IaaS.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.SqlServer.Managability.IaaS.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.SqlServer.Management\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.SqlServer.Management\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.SystemCenter\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.SystemCenter\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.ETWTraceListenerService\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.Azure.ETWTraceListenerService\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.RemoteDebug\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.Azure.RemoteDebug\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.Azure.RemoteDebug.Json\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.Azure.RemoteDebug.Json\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.ServiceProfiler\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.ServiceProfiler\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.VisualStudio.ServiceProfiler.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.VisualStudio.ServiceProfiler.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Windows.AzureRemoteApp.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Windows.AzureRemoteApp.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.Windows.RemoteDesktop\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Windows.RemoteDesktop\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Microsoft.WindowsAzure.Compute\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.WindowsAzure.Compute\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftAzureSiteRecovery\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftAzureSiteRecovery\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftBizTalkServer\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftBizTalkServer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftDynamicsAX\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftDynamicsAX\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftDynamicsGP\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftDynamicsGP\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftDynamicsNAV\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftDynamicsNAV\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftHybridCloudStorage\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftHybridCloudStorage\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftSharePoint\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftSharePoint\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftSQLServer\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftSQLServer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftVisualStudio\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftVisualStudio\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftWindowsServer\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftWindowsServerEssentials\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServerEssentials\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftWindowsServerHPCPack\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServerHPCPack\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MicrosoftWindowsServerRemoteDesktop\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MicrosoftWindowsServerRemoteDesktop\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"midvision\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/midvision\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"miracl_linux\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/miracl_linux\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mokxa-technologies\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/mokxa-technologies\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"moviemasher\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/moviemasher\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"msopentech\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/msopentech\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"MSOpenTech.Extensions\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/MSOpenTech.Extensions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mtnfog\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/mtnfog\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mvp-systems\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/mvp-systems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"mxhero\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/mxhero\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ncbi\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/ncbi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"netapp\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/netapp\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"new-signature\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/new-signature\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nexus\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/nexus\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nginxinc\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/nginxinc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nicepeopleatwork\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/nicepeopleatwork\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nodejsapi\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/nodejsapi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"nuxeo\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/nuxeo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"officeclipsuite\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/officeclipsuite\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"op5\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/op5\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"opencell\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/opencell\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"OpenLogic\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/OpenLogic\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"openmeap\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/openmeap\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"opennebulasystems\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/opennebulasystems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"opentext\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/opentext\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Oracle\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Oracle\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"orientdb\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/orientdb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"osisoft\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/osisoft\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"outsystems\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/outsystems\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"panzura-file-system\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/panzura-file-system\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"pointmatter\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/pointmatter\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"predictionio\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/predictionio\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"predixion\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/predixion\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"prestashop\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/prestashop\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"primestream\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/primestream\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"profisee\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/profisee\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ptv_group\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/ptv_group\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"PuppetLabs\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/PuppetLabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"PuppetLabs.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/PuppetLabs.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"pxlag_swiss\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/pxlag_swiss\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"quasardb\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/quasardb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"rancher\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/rancher\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"redpoint-global\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/redpoint-global\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"remotelearner\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/remotelearner\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"revolution-analytics\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/revolution-analytics\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"RightScaleLinux\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/RightScaleLinux\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"RightScaleWindowsServer\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/RightScaleWindowsServer\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"riverbed\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/riverbed\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"RiverbedTechnology\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/RiverbedTechnology\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"rocketsoftware\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/rocketsoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"rocket_software\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/rocket_software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"saltstack\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/saltstack\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sap\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sap\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"scalearc\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/scalearc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"scalebase\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/scalebase\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"seagate\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/seagate\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"searchblox\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/searchblox\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sensorberg\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sensorberg\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"servoy\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/servoy\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sharefile\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sharefile\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"shavlik\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/shavlik\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sightapps\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sightapps\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sinefa\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sinefa\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sios_datakeeper\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sios_datakeeper\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sisense\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sisense\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"snip2code\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/snip2code\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"softnas\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/softnas\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"soha\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/soha\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"solanolabs\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/solanolabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"spacecurve\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/spacecurve\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"spagobi\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/spagobi\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sphere3d\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sphere3d\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stackato-platform-as-a-service\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/stackato-platform-as-a-service\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stackstorm\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/stackstorm\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"starwind\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/starwind\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"steelhive\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/steelhive\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stonefly\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/stonefly\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stormshield\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/stormshield\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"stratalux\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/stratalux\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"sunview-software\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/sunview-software\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"SUSE\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/SUSE\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Symantec\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Symantec\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Symantec.QA\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Symantec.QA\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Symantec.staging\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Symantec.staging\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Symantec.test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Symantec.test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tactic\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/tactic\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"talon\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/talon\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"targit\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/targit\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tavendo\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/tavendo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"techdivision\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/techdivision\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"telepat\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/telepat\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tenable\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/tenable\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tentity\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/tentity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.Barracuda.Azure.ConnectivityAgent\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.Barracuda.Azure.ConnectivityAgent\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.Gemalto.SafeNet.ProtectV\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.Gemalto.SafeNet.ProtectV\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.Gemalto.SafeNet.ProtectV.Azure\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.Gemalto.SafeNet.ProtectV.Azure\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.HP.AppDefender\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.HP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.NJHP.AppDefender\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.NJHP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.TrendMicro.DeepSecurity\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.TrendMicro.DeepSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.TrendMicro.DeepSecurity2\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.TrendMicro.DeepSecurity2\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test.TrendMicro.DeepSecurity3\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test.TrendMicro.DeepSecurity3\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Test1.NJHP.AppDefender\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Test1.NJHP.AppDefender\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"thinkboxsoftware\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/thinkboxsoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"topdesk\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/topdesk\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"torusware\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/torusware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"transvault\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/transvault\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"trendmicro\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/trendmicro\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"TrendMicro.DeepSecurity\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/TrendMicro.DeepSecurity\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"TrendMicro.DeepSecurity.Test2\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/TrendMicro.DeepSecurity.Test2\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"TrendMicro.PortalProtect\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/TrendMicro.PortalProtect\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"tsa-public-service\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/tsa-public-service\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"typesafe\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/typesafe\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"ubercloud\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/ubercloud\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"unidesk\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/unidesk\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"unidesk-corp\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/unidesk-corp\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"usp\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/usp\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vbot\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/vbot\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"veeam\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/veeam\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vidispine\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/vidispine\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vidizmo\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/vidizmo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"virtualworks\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/virtualworks\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vision_solutions\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/vision_solutions\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vmturbo\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/vmturbo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Vormetric\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Vormetric\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"Vormetric.VormetricTransparentEncryption\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Vormetric.VormetricTransparentEncryption\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"vte\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/vte\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"WAD-VMSS.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/WAD-VMSS.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"WAD2AI.Diagnostics.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/WAD2AI.Diagnostics.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"WADVMSS.Test\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/WADVMSS.Test\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"waratek\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/waratek\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"warewolf-esb\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/warewolf-esb\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"watchfulsoftware\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/watchfulsoftware\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"websense-apmailpe\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/websense-apmailpe\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"wmspanel\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/wmspanel\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"workshare-technology\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/workshare-technology\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"wowza\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/wowza\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xebialabs\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/xebialabs\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xfinityinc\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/xfinityinc\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xmpro\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/xmpro\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"xtremedata\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/xtremedata\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"yellowfin\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/yellowfin\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"your-shop-online\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/your-shop-online\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"zementis\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/zementis\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"zend\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/zend\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"zoomdata\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/zoomdata\"\r\n }\r\n]", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "69897" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2475,8 +2493,11 @@ "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-served-by": [ + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" + ], "x-ms-request-id": [ - "ef70a158-bc47-4f3b-a66d-b8565d7c5c90" + "0d169df4-1ec7-468c-9700-ae54f0a29cd5" ], "Cache-Control": [ "no-cache" @@ -2486,40 +2507,34 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14983" + "14975" ], "x-ms-correlation-request-id": [ - "abc11b70-c552-4abb-a1a3-b5eff5ce9639" + "12ac9bf1-4114-4497-90ff-67a3e500c1dd" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002426Z:abc11b70-c552-4abb-a1a3-b5eff5ce9639" + "WESTUS:20160220T021030Z:12ac9bf1-4114-4497-90ff-67a3e500c1dd" ], "Date": [ - "Sat, 19 Dec 2015 00:24:26 GMT" + "Sat, 20 Feb 2016 02:10:30 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/publishers/Microsoft.Compute/artifacttypes/vmextension/types?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL3B1Ymxpc2hlcnMvTWljcm9zb2Z0LkNvbXB1dGUvYXJ0aWZhY3R0eXBlcy92bWV4dGVuc2lvbi90eXBlcz9hcGktdmVyc2lvbj0yMDE1LTA2LTE1", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { - "x-ms-client-request-id": [ - "eccab5ba-2aa2-4f4c-8aa4-45d19931ed66" - ], - "accept-language": [ - "en-US" - ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "[\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"BGInfo\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/BGInfo\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"CustomScriptExtension\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/CustomScriptExtension\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"JsonADDomainExtension\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/JsonADDomainExtension\"\r\n },\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"VMAccessAgent\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/VMAccessAgent\"\r\n }\r\n]", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "1033" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2533,8 +2548,11 @@ "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-served-by": [ + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" + ], "x-ms-request-id": [ - "94353704-dcc9-4958-9a7d-08322f191a07" + "f814235f-2316-43f0-895b-e69c67809a00" ], "Cache-Control": [ "no-cache" @@ -2544,40 +2562,34 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14982" + "14974" ], "x-ms-correlation-request-id": [ - "70bef191-0cc6-4878-9b5a-7fbfa8e7867e" + "d90f9425-35c6-4afe-af56-5a0af379ae52" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002426Z:70bef191-0cc6-4878-9b5a-7fbfa8e7867e" + "WESTUS:20160220T021101Z:d90f9425-35c6-4afe-af56-5a0af379ae52" ], "Date": [ - "Sat, 19 Dec 2015 00:24:26 GMT" + "Sat, 20 Feb 2016 02:11:00 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/publishers/Microsoft.Compute/artifacttypes/vmextension/types/BGInfo/versions?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL3B1Ymxpc2hlcnMvTWljcm9zb2Z0LkNvbXB1dGUvYXJ0aWZhY3R0eXBlcy92bWV4dGVuc2lvbi90eXBlcy9CR0luZm8vdmVyc2lvbnM/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { - "x-ms-client-request-id": [ - "3c132390-1483-41aa-aa51-569ac62a7c50" - ], - "accept-language": [ - "en-US" - ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "[\r\n {\r\n \"location\": \"eastus\",\r\n \"name\": \"2.1\",\r\n \"id\": \"/Subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/Providers/Microsoft.Compute/Locations/eastus/Publishers/Microsoft.Compute/ArtifactTypes/VMExtension/Types/BGInfo/Versions/2.1\"\r\n }\r\n]", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "252" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2591,8 +2603,11 @@ "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-served-by": [ + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" + ], "x-ms-request-id": [ - "6e712c60-62e0-4c42-ad7e-00dba41f5eeb" + "4f493c57-2fd1-44f1-9f95-1a9277cdf6a8" ], "Cache-Control": [ "no-cache" @@ -2602,46 +2617,34 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14981" + "14973" ], "x-ms-correlation-request-id": [ - "8baabc6b-e477-4c77-8d93-88ff80d4047f" + "94bd0df7-95dd-4a52-986f-1ecbfe364268" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002426Z:8baabc6b-e477-4c77-8d93-88ff80d4047f" + "WESTUS:20160220T021131Z:94bd0df7-95dd-4a52-986f-1ecbfe364268" ], "Date": [ - "Sat, 19 Dec 2015 00:24:26 GMT" + "Sat, 20 Feb 2016 02:11:30 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/BGInfo?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy92bWNycHRlc3RwczYwODQvZXh0ZW5zaW9ucy9CR0luZm8/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", - "RequestMethod": "PUT", - "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Compute\",\r\n \"type\": \"BGInfo\",\r\n \"typeHandlerVersion\": \"2.1\",\r\n \"autoUpgradeMinorVersion\": true\r\n }\r\n}", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestMethod": "GET", + "RequestBody": "", "RequestHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "187" - ], - "x-ms-client-request-id": [ - "c571a778-b76c-4ef7-b3d1-00b1178e968a" - ], - "accept-language": [ - "en-US" - ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Compute\",\r\n \"type\": \"BGInfo\",\r\n \"typeHandlerVersion\": \"2.1\",\r\n \"autoUpgradeMinorVersion\": true,\r\n \"provisioningState\": \"Creating\"\r\n },\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/BGInfo\",\r\n \"name\": \"BGInfo\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "475" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -2652,17 +2655,14 @@ "Pragma": [ "no-cache" ], - "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15" - ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "99e5bfbe-dede-406a-9647-4eb38ead8ebe" + "89ea4a15-b184-4cd4-953d-085222190046" ], "Cache-Control": [ "no-cache" @@ -2671,24 +2671,24 @@ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1198" + "x-ms-ratelimit-remaining-subscription-reads": [ + "14972" ], "x-ms-correlation-request-id": [ - "5895e1de-9e42-47e7-a4ec-98c4e33a779c" + "11f61727-d768-4597-b714-4e4dce5aa4f8" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002429Z:5895e1de-9e42-47e7-a4ec-98c4e33a779c" + "WESTUS:20160220T021201Z:11f61727-d768-4597-b714-4e4dce5aa4f8" ], "Date": [ - "Sat, 19 Dec 2015 00:24:29 GMT" + "Sat, 20 Feb 2016 02:12:01 GMT" ] }, - "StatusCode": 201 + "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2696,7 +2696,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -2714,10 +2714,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "49e85b0b-5195-4cb9-8ece-ce3f4289ff1e" + "57f2d5a6-1eea-49a1-9a94-dba5e08cdace" ], "Cache-Control": [ "no-cache" @@ -2727,23 +2727,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14980" + "14971" ], "x-ms-correlation-request-id": [ - "e8bedacc-cc8f-433c-bc9b-9b089114db04" + "7659a27a-989c-48c5-a5d9-75062d21a3b1" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002459Z:e8bedacc-cc8f-433c-bc9b-9b089114db04" + "WESTUS:20160220T021231Z:7659a27a-989c-48c5-a5d9-75062d21a3b1" ], "Date": [ - "Sat, 19 Dec 2015 00:24:58 GMT" + "Sat, 20 Feb 2016 02:12:30 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2751,7 +2751,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -2769,10 +2769,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "a49dda45-4f0b-4043-baca-bfc05438cf0f" + "d309e338-83c3-47f4-89f1-c848b017922d" ], "Cache-Control": [ "no-cache" @@ -2782,23 +2782,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14979" + "14970" ], "x-ms-correlation-request-id": [ - "1c95e911-ed3e-48d2-9141-ad6db1d9bda4" + "ad23ffc5-9047-4b7a-8d6e-a9ef435efce5" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002529Z:1c95e911-ed3e-48d2-9141-ad6db1d9bda4" + "WESTUS:20160220T021301Z:ad23ffc5-9047-4b7a-8d6e-a9ef435efce5" ], "Date": [ - "Sat, 19 Dec 2015 00:25:28 GMT" + "Sat, 20 Feb 2016 02:13:01 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2806,7 +2806,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -2824,10 +2824,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "17285df7-95b1-4857-94e1-6833e1059efb" + "6fa7194f-c399-446e-89ea-90b3154ac367" ], "Cache-Control": [ "no-cache" @@ -2837,23 +2837,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14978" + "14968" ], "x-ms-correlation-request-id": [ - "86c5e559-e735-48d2-a45f-e400f39d8078" + "98906fca-a7b0-4306-bd9b-d731231f0916" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002559Z:86c5e559-e735-48d2-a45f-e400f39d8078" + "WESTUS:20160220T021331Z:98906fca-a7b0-4306-bd9b-d731231f0916" ], "Date": [ - "Sat, 19 Dec 2015 00:25:58 GMT" + "Sat, 20 Feb 2016 02:13:30 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2861,7 +2861,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -2879,10 +2879,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "5e032c8c-c4cd-4838-af1c-352ceda77eb1" + "d7fbbe52-34e8-43ff-a034-9cd468fe6966" ], "Cache-Control": [ "no-cache" @@ -2892,23 +2892,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14977" + "14967" ], "x-ms-correlation-request-id": [ - "33cb1230-6f4b-43d2-acbf-37ab443ece57" + "4480e8e7-fee5-4fde-ab7b-39c9834668d6" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002629Z:33cb1230-6f4b-43d2-acbf-37ab443ece57" + "WESTUS:20160220T021401Z:4480e8e7-fee5-4fde-ab7b-39c9834668d6" ], "Date": [ - "Sat, 19 Dec 2015 00:26:29 GMT" + "Sat, 20 Feb 2016 02:14:01 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2916,7 +2916,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -2934,10 +2934,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "cc309b84-fb68-4d76-a0a6-8f6173b6f664" + "e6eafb42-3ec5-4f93-af27-11ebd27b4428" ], "Cache-Control": [ "no-cache" @@ -2947,23 +2947,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14976" + "14966" ], "x-ms-correlation-request-id": [ - "9f8b841f-471f-48e5-9235-40d90507837c" + "4ca07d30-c0ea-4768-8a8d-a079e7a67ab9" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002659Z:9f8b841f-471f-48e5-9235-40d90507837c" + "WESTUS:20160220T021431Z:4ca07d30-c0ea-4768-8a8d-a079e7a67ab9" ], "Date": [ - "Sat, 19 Dec 2015 00:26:59 GMT" + "Sat, 20 Feb 2016 02:14:31 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -2971,7 +2971,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -2989,10 +2989,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "8f13065e-d7d2-46b0-9abb-1091b61d208b" + "c5387c5e-89b7-4f86-a350-0bbcd2e596f9" ], "Cache-Control": [ "no-cache" @@ -3002,23 +3002,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14975" + "14967" ], "x-ms-correlation-request-id": [ - "0cf73503-3ede-4b33-8c88-0cacb55ce765" + "90df3813-fbf8-4655-a51b-b911806ebdf8" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002730Z:0cf73503-3ede-4b33-8c88-0cacb55ce765" + "WESTUS:20160220T021502Z:90df3813-fbf8-4655-a51b-b911806ebdf8" ], "Date": [ - "Sat, 19 Dec 2015 00:27:29 GMT" + "Sat, 20 Feb 2016 02:15:01 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3026,7 +3026,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3044,10 +3044,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "c3a4abf9-5639-486b-b1af-09716b0e5e27" + "707cd705-7595-41ed-b80b-31e807355684" ], "Cache-Control": [ "no-cache" @@ -3057,23 +3057,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14974" + "14966" ], "x-ms-correlation-request-id": [ - "8e34c976-be83-4f18-8b2d-21a8f4160109" + "550fb921-12be-49f3-a35d-3fb531c5b948" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002800Z:8e34c976-be83-4f18-8b2d-21a8f4160109" + "WESTUS:20160220T021532Z:550fb921-12be-49f3-a35d-3fb531c5b948" ], "Date": [ - "Sat, 19 Dec 2015 00:28:00 GMT" + "Sat, 20 Feb 2016 02:15:31 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3081,7 +3081,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3099,10 +3099,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "1cf5cb90-8450-47a1-89ff-7a2a56205b1e" + "88bb6314-f0f4-40a2-93b9-bbe3f4a56b9e" ], "Cache-Control": [ "no-cache" @@ -3112,23 +3112,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14973" + "14965" ], "x-ms-correlation-request-id": [ - "ff58fa74-cd51-4a0b-9b28-be895e5c658b" + "63799cb1-f6d3-46df-8495-93a7bf6d1538" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002830Z:ff58fa74-cd51-4a0b-9b28-be895e5c658b" + "WESTUS:20160220T021602Z:63799cb1-f6d3-46df-8495-93a7bf6d1538" ], "Date": [ - "Sat, 19 Dec 2015 00:28:30 GMT" + "Sat, 20 Feb 2016 02:16:02 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3136,7 +3136,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3154,10 +3154,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "3c9b5f89-4570-4262-93ae-a8452b2d3468" + "15b506dc-c251-4a93-ad44-7eb6718d92fe" ], "Cache-Control": [ "no-cache" @@ -3167,23 +3167,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14972" + "14964" ], "x-ms-correlation-request-id": [ - "088fb169-bfe7-4a4c-bead-ed815989e64d" + "fb12a337-b9b0-4ae1-b4cc-ebc2bee2ab9c" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002900Z:088fb169-bfe7-4a4c-bead-ed815989e64d" + "WESTUS:20160220T021632Z:fb12a337-b9b0-4ae1-b4cc-ebc2bee2ab9c" ], "Date": [ - "Sat, 19 Dec 2015 00:29:00 GMT" + "Sat, 20 Feb 2016 02:16:31 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3191,7 +3191,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3209,10 +3209,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "c112ecff-dda2-4e97-8db0-8de595cc1d53" + "8de76bcf-d866-41b0-b74f-0e76d82168fd" ], "Cache-Control": [ "no-cache" @@ -3222,23 +3222,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14971" + "14963" ], "x-ms-correlation-request-id": [ - "a923787e-153b-48ca-ab1a-aa648df035b2" + "205d5a6a-f834-4571-ab51-28f3480fce5b" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T002930Z:a923787e-153b-48ca-ab1a-aa648df035b2" + "WESTUS:20160220T021702Z:205d5a6a-f834-4571-ab51-28f3480fce5b" ], "Date": [ - "Sat, 19 Dec 2015 00:29:29 GMT" + "Sat, 20 Feb 2016 02:17:02 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3246,7 +3246,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3264,10 +3264,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "63006d27-1601-47df-bcad-c3492feb03e0" + "74324000-afac-4992-8f4f-fa459aadc0ac" ], "Cache-Control": [ "no-cache" @@ -3277,23 +3277,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14970" + "14962" ], "x-ms-correlation-request-id": [ - "635dfdd7-3f76-4487-9242-fd55e89f810a" + "765f3fc0-3aa6-43c9-a1a8-15002ba21fa8" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003000Z:635dfdd7-3f76-4487-9242-fd55e89f810a" + "WESTUS:20160220T021732Z:765f3fc0-3aa6-43c9-a1a8-15002ba21fa8" ], "Date": [ - "Sat, 19 Dec 2015 00:29:59 GMT" + "Sat, 20 Feb 2016 02:17:31 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3301,7 +3301,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3319,10 +3319,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "5e4de0db-6685-423c-a333-345dda80d3e5" + "5bc6775a-6d3c-435f-a44c-85ce19d3490e" ], "Cache-Control": [ "no-cache" @@ -3332,23 +3332,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14969" + "14961" ], "x-ms-correlation-request-id": [ - "055b3481-d8ff-486e-9ca9-a4057acb4afb" + "d9976d22-b691-4e47-aed9-8571e3cb20b6" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003030Z:055b3481-d8ff-486e-9ca9-a4057acb4afb" + "WESTUS:20160220T021802Z:d9976d22-b691-4e47-aed9-8571e3cb20b6" ], "Date": [ - "Sat, 19 Dec 2015 00:30:29 GMT" + "Sat, 20 Feb 2016 02:18:02 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/5ec54a06-6198-4cdd-891e-965df8a599d1?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvNWVjNTRhMDYtNjE5OC00Y2RkLTg5MWUtOTY1ZGY4YTU5OWQxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3356,10 +3356,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"5ec54a06-6198-4cdd-891e-965df8a599d1\",\r\n \"status\": \"Succeeded\",\r\n \"startTime\": \"2016-02-19T18:08:58.9665104-08:00\",\r\n \"endTime\": \"2016-02-19T18:18:10.4519812-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "141" + "191" ], "Content-Type": [ "application/json; charset=utf-8" @@ -3374,10 +3374,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "1b3e0c6b-0f98-46a6-a612-01a045a1d28b" + "01b3b0f8-e1a1-4409-9637-e04722efca35" ], "Cache-Control": [ "no-cache" @@ -3387,23 +3387,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14968" + "14960" ], "x-ms-correlation-request-id": [ - "16df7bbc-e0bf-4733-b051-d15a27859a2c" + "1d2aef8c-2d1a-45a1-8d14-82da312279f3" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003100Z:16df7bbc-e0bf-4733-b051-d15a27859a2c" + "WESTUS:20160220T021832Z:1d2aef8c-2d1a-45a1-8d14-82da312279f3" ], "Date": [ - "Sat, 19 Dec 2015 00:31:00 GMT" + "Sat, 20 Feb 2016 02:18:32 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/BGInfo?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5L2V4dGVuc2lvbnMvQkdJbmZvP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3411,10 +3411,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Compute\",\r\n \"type\": \"BGInfo\",\r\n \"typeHandlerVersion\": \"2.1\",\r\n \"autoUpgradeMinorVersion\": true,\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/BGInfo\",\r\n \"name\": \"BGInfo\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "141" + "474" ], "Content-Type": [ "application/json; charset=utf-8" @@ -3429,10 +3429,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "6bc0ed37-566f-4220-a830-9f0a8454b0f1" + "9fd12a59-5362-46cb-8361-61cd5f88e0e5" ], "Cache-Control": [ "no-cache" @@ -3442,34 +3442,46 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14967" + "14959" ], "x-ms-correlation-request-id": [ - "b5fe5623-280f-42df-a4f5-ef2943597c06" + "1079ed60-7404-4dcb-bdaf-ff45609d8212" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003131Z:b5fe5623-280f-42df-a4f5-ef2943597c06" + "WESTUS:20160220T021833Z:1079ed60-7404-4dcb-bdaf-ff45609d8212" ], "Date": [ - "Sat, 19 Dec 2015 00:31:30 GMT" + "Sat, 20 Feb 2016 02:18:32 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5L2V4dGVuc2lvbnMvTWljcm9zb2Z0LlBvd2Vyc2hlbGwuRFNDP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.13\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {},\r\n \"protectedSettings\": {}\r\n }\r\n}", "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "240" + ], + "x-ms-client-request-id": [ + "53258931-51dc-494d-9bdc-9a93bfccef98" + ], + "accept-language": [ + "en-US" + ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.13\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {},\r\n \"provisioningState\": \"Creating\"\r\n },\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC\",\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "141" + "532" ], "Content-Type": [ "application/json; charset=utf-8" @@ -3480,14 +3492,17 @@ "Pragma": [ "no-cache" ], + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15" + ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "24f52b5d-f938-4f99-a54a-4adf2d238922" + "d7ce8ea0-981c-499c-b295-cdf090ba8f9a" ], "Cache-Control": [ "no-cache" @@ -3496,24 +3511,24 @@ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14966" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1197" ], "x-ms-correlation-request-id": [ - "e8083bd5-4de7-4aa8-b6e2-3ffcb3b1e627" + "ed47972d-bea6-42a1-89b0-200b978979cd" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003201Z:e8083bd5-4de7-4aa8-b6e2-3ffcb3b1e627" + "WESTUS:20160220T021836Z:ed47972d-bea6-42a1-89b0-200b978979cd" ], "Date": [ - "Sat, 19 Dec 2015 00:32:00 GMT" + "Sat, 20 Feb 2016 02:18:35 GMT" ] }, - "StatusCode": 200 + "StatusCode": 201 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3521,7 +3536,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3539,10 +3554,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "e6fddad3-a94b-4063-b036-8f6726147572" + "cefb2d7a-92d1-47b2-9b78-9faddf0e8b7e" ], "Cache-Control": [ "no-cache" @@ -3552,23 +3567,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14965" + "14958" ], "x-ms-correlation-request-id": [ - "2dec2677-8f28-42cc-bdec-9af30797fabd" + "807867b8-afda-4ca6-9edf-aad2c6a8ea1e" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003231Z:2dec2677-8f28-42cc-bdec-9af30797fabd" + "WESTUS:20160220T021906Z:807867b8-afda-4ca6-9edf-aad2c6a8ea1e" ], "Date": [ - "Sat, 19 Dec 2015 00:32:30 GMT" + "Sat, 20 Feb 2016 02:19:06 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3576,7 +3591,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3594,10 +3609,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "f3b49470-ebfd-4ce1-b70e-53a4ced5c447" + "c58c304b-d5e6-4662-b0de-e887718632d0" ], "Cache-Control": [ "no-cache" @@ -3607,23 +3622,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14964" + "14957" ], "x-ms-correlation-request-id": [ - "6a2709ee-10a0-4e75-bd3c-aa12fe6b4a86" + "aa73d67b-4f47-4033-90da-1211d402eeba" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003301Z:6a2709ee-10a0-4e75-bd3c-aa12fe6b4a86" + "WESTUS:20160220T021936Z:aa73d67b-4f47-4033-90da-1211d402eeba" ], "Date": [ - "Sat, 19 Dec 2015 00:33:01 GMT" + "Sat, 20 Feb 2016 02:19:36 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3631,7 +3646,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3649,10 +3664,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "cdab24e3-a202-4b3c-adc3-a93ef2f29e44" + "10ce1262-53f8-42ee-a5b5-46fd0c30ca2e" ], "Cache-Control": [ "no-cache" @@ -3662,23 +3677,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14963" + "14956" ], "x-ms-correlation-request-id": [ - "c23b809b-8ffc-4f63-89fd-fddb93c6da7e" + "b5b57122-a99a-415e-971a-df2de4e4574c" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003331Z:c23b809b-8ffc-4f63-89fd-fddb93c6da7e" + "WESTUS:20160220T022006Z:b5b57122-a99a-415e-971a-df2de4e4574c" ], "Date": [ - "Sat, 19 Dec 2015 00:33:31 GMT" + "Sat, 20 Feb 2016 02:20:05 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3686,7 +3701,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3704,10 +3719,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "34825932-87cc-483b-a41a-1497b947b7a0" + "12efe1ce-26c9-4e01-b96b-f8706f8c5972" ], "Cache-Control": [ "no-cache" @@ -3717,23 +3732,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14962" + "14955" ], "x-ms-correlation-request-id": [ - "2d2a622c-d9f7-4c25-8eec-4e79e20a87b8" + "1c41a78a-f436-4c4f-bb50-000d9b5b2364" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003401Z:2d2a622c-d9f7-4c25-8eec-4e79e20a87b8" + "WESTUS:20160220T022036Z:1c41a78a-f436-4c4f-bb50-000d9b5b2364" ], "Date": [ - "Sat, 19 Dec 2015 00:34:01 GMT" + "Sat, 20 Feb 2016 02:20:36 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3741,7 +3756,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3759,10 +3774,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "192413c1-9ca8-4565-8539-af28f8473e53" + "2f1ee239-8cc7-4fb3-86bf-051c49d89948" ], "Cache-Control": [ "no-cache" @@ -3772,23 +3787,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14961" + "14954" ], "x-ms-correlation-request-id": [ - "39e99142-0c38-4789-8277-ab51fd78c4f7" + "6e44cff0-8cfb-46b7-aab7-1093d7dcc53c" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003431Z:39e99142-0c38-4789-8277-ab51fd78c4f7" + "WESTUS:20160220T022106Z:6e44cff0-8cfb-46b7-aab7-1093d7dcc53c" ], "Date": [ - "Sat, 19 Dec 2015 00:34:30 GMT" + "Sat, 20 Feb 2016 02:21:06 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3796,7 +3811,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3814,10 +3829,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "257ddce8-547f-459f-8f55-b746aeabcaef" + "bd0b32c9-f1a5-4a47-9598-cf52fe0de81d" ], "Cache-Control": [ "no-cache" @@ -3827,23 +3842,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14960" + "14953" ], "x-ms-correlation-request-id": [ - "ec92f1af-2159-42a1-9900-20a2562e0677" + "8d333773-99f5-463c-bb5e-deb0582069a5" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003501Z:ec92f1af-2159-42a1-9900-20a2562e0677" + "WESTUS:20160220T022137Z:8d333773-99f5-463c-bb5e-deb0582069a5" ], "Date": [ - "Sat, 19 Dec 2015 00:35:01 GMT" + "Sat, 20 Feb 2016 02:21:36 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3851,7 +3866,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3869,10 +3884,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "33dda880-b7ef-45f1-b76d-81348e4bb914" + "f3d02830-1687-4904-acfe-88e6a9953945" ], "Cache-Control": [ "no-cache" @@ -3882,23 +3897,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14959" + "14952" ], "x-ms-correlation-request-id": [ - "e317df43-57d1-4b56-b58d-7b5b5e367d8e" + "93eb2067-bf41-4b21-8a29-f88b7a8e172b" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003531Z:e317df43-57d1-4b56-b58d-7b5b5e367d8e" + "WESTUS:20160220T022207Z:93eb2067-bf41-4b21-8a29-f88b7a8e172b" ], "Date": [ - "Sat, 19 Dec 2015 00:35:31 GMT" + "Sat, 20 Feb 2016 02:22:06 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3906,7 +3921,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3924,10 +3939,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "d78ea367-cbcb-478a-9773-cd33db13e1a4" + "26f8204c-30bd-46c6-9d10-00029f962ce1" ], "Cache-Control": [ "no-cache" @@ -3937,23 +3952,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14958" + "14951" ], "x-ms-correlation-request-id": [ - "d495cdea-23d1-4391-855c-11a187ac6317" + "4700e5fd-26de-4464-9de0-0c3892c66528" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003602Z:d495cdea-23d1-4391-855c-11a187ac6317" + "WESTUS:20160220T022237Z:4700e5fd-26de-4464-9de0-0c3892c66528" ], "Date": [ - "Sat, 19 Dec 2015 00:36:01 GMT" + "Sat, 20 Feb 2016 02:22:37 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -3961,7 +3976,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -3979,10 +3994,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "2f4b5d29-fb7b-4052-b530-a76123ee08be" + "feac7442-fce3-47e1-a88c-4647af612086" ], "Cache-Control": [ "no-cache" @@ -3992,23 +4007,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14957" + "14950" ], "x-ms-correlation-request-id": [ - "40173c49-6de0-4d47-b97c-8307fb4e9cc3" + "9be46e92-4c9f-4298-8602-6918e6fcabc1" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003632Z:40173c49-6de0-4d47-b97c-8307fb4e9cc3" + "WESTUS:20160220T022307Z:9be46e92-4c9f-4298-8602-6918e6fcabc1" ], "Date": [ - "Sat, 19 Dec 2015 00:36:31 GMT" + "Sat, 20 Feb 2016 02:23:06 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -4016,7 +4031,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -4034,10 +4049,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "16714962-930d-4c5d-8c98-f7f027b9c968" + "d9b9aeca-78d9-4c63-9e19-fa66b5a70016" ], "Cache-Control": [ "no-cache" @@ -4047,23 +4062,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14956" + "14949" ], "x-ms-correlation-request-id": [ - "5368ff5c-8bca-46af-9ed0-4ce702af9537" + "71373616-3a7e-41df-a5fb-e2fdcca20378" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003702Z:5368ff5c-8bca-46af-9ed0-4ce702af9537" + "WESTUS:20160220T022337Z:71373616-3a7e-41df-a5fb-e2fdcca20378" ], "Date": [ - "Sat, 19 Dec 2015 00:37:02 GMT" + "Sat, 20 Feb 2016 02:23:37 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -4071,7 +4086,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -4089,10 +4104,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "7e5a03f1-bc83-4a34-8c04-915c7d5eca36" + "7f7897be-5c64-41b0-9b64-c083b3c9ef2b" ], "Cache-Control": [ "no-cache" @@ -4102,23 +4117,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14955" + "14947" ], "x-ms-correlation-request-id": [ - "8a77f0d9-f2ed-4fc9-813a-9aab0f9c78dd" + "db14c8cf-519c-431a-931e-963862294dc5" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003732Z:8a77f0d9-f2ed-4fc9-813a-9aab0f9c78dd" + "WESTUS:20160220T022407Z:db14c8cf-519c-431a-931e-963862294dc5" ], "Date": [ - "Sat, 19 Dec 2015 00:37:32 GMT" + "Sat, 20 Feb 2016 02:24:07 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -4126,7 +4141,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -4144,10 +4159,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "951b0937-4eb5-4278-a689-3550234fed2d" + "f7b3b1ed-b54a-4a33-8b1e-714ae5d12112" ], "Cache-Control": [ "no-cache" @@ -4157,23 +4172,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14954" + "14946" ], "x-ms-correlation-request-id": [ - "f519ac27-d1d4-4bd0-bbbc-7f15e2cd6f50" + "ff9aad03-4e70-4486-83b4-93f04330c6fb" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003802Z:f519ac27-d1d4-4bd0-bbbc-7f15e2cd6f50" + "WESTUS:20160220T022437Z:ff9aad03-4e70-4486-83b4-93f04330c6fb" ], "Date": [ - "Sat, 19 Dec 2015 00:38:01 GMT" + "Sat, 20 Feb 2016 02:24:37 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/99e5bfbe-dede-406a-9647-4eb38ead8ebe?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvOTllNWJmYmUtZGVkZS00MDZhLTk2NDctNGViMzhlYWQ4ZWJlP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -4181,10 +4196,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"99e5bfbe-dede-406a-9647-4eb38ead8ebe\",\r\n \"status\": \"Succeeded\",\r\n \"startTime\": \"2015-12-18T16:24:28.8394047-08:00\",\r\n \"endTime\": \"2015-12-18T16:38:15.0946409-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "191" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -4199,10 +4214,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "82ecdf34-0568-4b0e-823d-8c549f257d92" + "413f867c-8183-4542-a425-19ed7a2d9c01" ], "Cache-Control": [ "no-cache" @@ -4212,23 +4227,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14953" + "14946" ], "x-ms-correlation-request-id": [ - "5137db98-fe9f-445a-9734-ce4ad508cb06" + "ec034648-c0f3-4795-954d-70ffe6974c85" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003832Z:5137db98-fe9f-445a-9734-ce4ad508cb06" + "WESTUS:20160220T022507Z:ec034648-c0f3-4795-954d-70ffe6974c85" ], "Date": [ - "Sat, 19 Dec 2015 00:38:32 GMT" + "Sat, 20 Feb 2016 02:25:07 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/BGInfo?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy92bWNycHRlc3RwczYwODQvZXh0ZW5zaW9ucy9CR0luZm8/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -4236,10 +4251,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Compute\",\r\n \"type\": \"BGInfo\",\r\n \"typeHandlerVersion\": \"2.1\",\r\n \"autoUpgradeMinorVersion\": true,\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/BGInfo\",\r\n \"name\": \"BGInfo\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "476" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -4254,10 +4269,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "b07d64d7-59c7-4876-9f2d-570234c5dbfb" + "5e402e5f-a454-4dfa-96be-5b243aa6b21a" ], "Cache-Control": [ "no-cache" @@ -4267,46 +4282,34 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14952" + "14944" ], "x-ms-correlation-request-id": [ - "344f593d-c537-4f35-89c8-9a0f01acde68" + "e40dbf20-d044-4f1f-aa2e-f1e811207b29" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003833Z:344f593d-c537-4f35-89c8-9a0f01acde68" + "WESTUS:20160220T022538Z:e40dbf20-d044-4f1f-aa2e-f1e811207b29" ], "Date": [ - "Sat, 19 Dec 2015 00:38:32 GMT" + "Sat, 20 Feb 2016 02:25:37 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/Microsoft.Powershell.DSC?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy92bWNycHRlc3RwczYwODQvZXh0ZW5zaW9ucy9NaWNyb3NvZnQuUG93ZXJzaGVsbC5EU0M/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", - "RequestMethod": "PUT", - "RequestBody": "{\r\n \"location\": \"East US\",\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.8\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {\r\n \"WmfVersion\": \"latest\"\r\n },\r\n \"protectedSettings\": {}\r\n }\r\n}", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestMethod": "GET", + "RequestBody": "", "RequestHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "275" - ], - "x-ms-client-request-id": [ - "3e71c2f3-c3e2-49d5-8087-6a21f6ba7b57" - ], - "accept-language": [ - "en-US" - ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.8\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {\r\n \"WmfVersion\": \"latest\"\r\n },\r\n \"provisioningState\": \"Creating\"\r\n },\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/Microsoft.Powershell.DSC\",\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "554" + "141" ], "Content-Type": [ "application/json; charset=utf-8" @@ -4317,1447 +4320,14 @@ "Pragma": [ "no-cache" ], - "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15" - ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "e88c810d-696a-4991-ba63-ad4ae45c8de1" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1197" - ], - "x-ms-correlation-request-id": [ - "79d85d86-a256-4eac-bad8-569357f97351" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003834Z:79d85d86-a256-4eac-bad8-569357f97351" - ], - "Date": [ - "Sat, 19 Dec 2015 00:38:34 GMT" - ] - }, - "StatusCode": 201 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "009ce413-8d0e-42e4-9172-4a9bde142cdc" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14951" - ], - "x-ms-correlation-request-id": [ - "a58b4721-be6f-4a0c-8da5-c28ba6562ed7" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003904Z:a58b4721-be6f-4a0c-8da5-c28ba6562ed7" - ], - "Date": [ - "Sat, 19 Dec 2015 00:39:04 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "33de4477-e8a5-4de6-aa43-fd7b56419936" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14950" - ], - "x-ms-correlation-request-id": [ - "1e95481f-94e9-409f-9e91-848913c13cfa" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T003935Z:1e95481f-94e9-409f-9e91-848913c13cfa" - ], - "Date": [ - "Sat, 19 Dec 2015 00:39:34 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "1ba487e0-ece7-44fd-a240-7ad46d63702e" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14949" - ], - "x-ms-correlation-request-id": [ - "c44126b8-db75-4e86-9b2b-117ffe298d04" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004005Z:c44126b8-db75-4e86-9b2b-117ffe298d04" - ], - "Date": [ - "Sat, 19 Dec 2015 00:40:04 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "ee7d6749-359e-4dcc-8abf-e21d594f982c" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14948" - ], - "x-ms-correlation-request-id": [ - "96cd2157-c157-4ec9-b217-98cfa0e63456" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004035Z:96cd2157-c157-4ec9-b217-98cfa0e63456" - ], - "Date": [ - "Sat, 19 Dec 2015 00:40:34 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "82d98004-8b80-4b09-a2b0-2636ea253bfc" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14947" - ], - "x-ms-correlation-request-id": [ - "11e62dc0-f0d8-444b-8fc2-f8efc39a9e3e" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004105Z:11e62dc0-f0d8-444b-8fc2-f8efc39a9e3e" - ], - "Date": [ - "Sat, 19 Dec 2015 00:41:04 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "a8d40ef6-eed3-4aa0-a072-b8b8d511277c" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14946" - ], - "x-ms-correlation-request-id": [ - "ceaf0e51-7531-470c-bb61-7c894deb2884" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004135Z:ceaf0e51-7531-470c-bb61-7c894deb2884" - ], - "Date": [ - "Sat, 19 Dec 2015 00:41:34 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "3fb50d2f-fe36-4bd7-805a-6640cf0bc3de" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14944" - ], - "x-ms-correlation-request-id": [ - "2469f79f-997d-4c3b-97cd-85c3f74e1eac" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004205Z:2469f79f-997d-4c3b-97cd-85c3f74e1eac" - ], - "Date": [ - "Sat, 19 Dec 2015 00:42:05 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "94366aee-0f2f-43b6-b5bf-460f1b59df1c" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14943" - ], - "x-ms-correlation-request-id": [ - "e1b9ae34-91c1-4ee2-87a4-db6384bf9995" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004235Z:e1b9ae34-91c1-4ee2-87a4-db6384bf9995" - ], - "Date": [ - "Sat, 19 Dec 2015 00:42:35 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "f2464371-253f-43aa-b28c-17656fb12134" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14942" - ], - "x-ms-correlation-request-id": [ - "dcdffd03-e3e9-492f-aade-a8611a8e7462" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004305Z:dcdffd03-e3e9-492f-aade-a8611a8e7462" - ], - "Date": [ - "Sat, 19 Dec 2015 00:43:04 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "9e75d2b9-8d58-45ca-aee8-bdcd650fa628" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14941" - ], - "x-ms-correlation-request-id": [ - "4574dab9-cc1a-4e18-b1d8-73030602d5a5" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004335Z:4574dab9-cc1a-4e18-b1d8-73030602d5a5" - ], - "Date": [ - "Sat, 19 Dec 2015 00:43:35 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "1629c214-f25f-486e-87e5-0445ded50089" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14940" - ], - "x-ms-correlation-request-id": [ - "c48d8a1c-178b-46bc-819f-24f5f85705af" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004406Z:c48d8a1c-178b-46bc-819f-24f5f85705af" - ], - "Date": [ - "Sat, 19 Dec 2015 00:44:05 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "938f6311-daa5-41d6-b681-8dfa9c9bbc72" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14939" - ], - "x-ms-correlation-request-id": [ - "55549b27-4a4b-4a6f-8958-3f0f1e2e29ad" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004436Z:55549b27-4a4b-4a6f-8958-3f0f1e2e29ad" - ], - "Date": [ - "Sat, 19 Dec 2015 00:44:35 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "2f5b3c44-e461-4cc6-8c67-89981b51f4de" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14938" - ], - "x-ms-correlation-request-id": [ - "719f00cc-cd52-461c-93c6-3e4e3937b427" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004506Z:719f00cc-cd52-461c-93c6-3e4e3937b427" - ], - "Date": [ - "Sat, 19 Dec 2015 00:45:05 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "a8130db2-2156-4aef-91cf-cbc8da4d32cb" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14937" - ], - "x-ms-correlation-request-id": [ - "b15af8bb-b299-45cc-9138-31fa3fcdc687" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004536Z:b15af8bb-b299-45cc-9138-31fa3fcdc687" - ], - "Date": [ - "Sat, 19 Dec 2015 00:45:35 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "18711d9c-6ac7-4a0a-ac70-907a58ed98af" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14936" - ], - "x-ms-correlation-request-id": [ - "16142795-7706-4037-ac44-ee3dda563b73" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004606Z:16142795-7706-4037-ac44-ee3dda563b73" - ], - "Date": [ - "Sat, 19 Dec 2015 00:46:05 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "6eca83b4-e5d4-4340-944c-1ab6a44e9073" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14935" - ], - "x-ms-correlation-request-id": [ - "67e9eca4-d54e-4fa7-a349-2d38d90c9540" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004636Z:67e9eca4-d54e-4fa7-a349-2d38d90c9540" - ], - "Date": [ - "Sat, 19 Dec 2015 00:46:35 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "909006ca-a38e-457b-87c9-225c83bbd5ff" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14934" - ], - "x-ms-correlation-request-id": [ - "8e0adc14-632e-4feb-a9c6-cab6042156fb" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004706Z:8e0adc14-632e-4feb-a9c6-cab6042156fb" - ], - "Date": [ - "Sat, 19 Dec 2015 00:47:06 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "d1c434d1-4258-407a-b1f9-af6a9d375dd4" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14933" - ], - "x-ms-correlation-request-id": [ - "7c06008a-0747-4806-9281-44e4230be88f" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004736Z:7c06008a-0747-4806-9281-44e4230be88f" - ], - "Date": [ - "Sat, 19 Dec 2015 00:47:36 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "f0eb13c2-efa5-4b37-8ded-339b47c63860" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14932" - ], - "x-ms-correlation-request-id": [ - "1a039530-e8d4-4d8b-82dc-508613013b8c" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004806Z:1a039530-e8d4-4d8b-82dc-508613013b8c" - ], - "Date": [ - "Sat, 19 Dec 2015 00:48:06 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "6aa4a401-b8d8-46a6-bb4f-4adfa0537ca7" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14931" - ], - "x-ms-correlation-request-id": [ - "bec858b6-0032-4276-b508-acae798179d0" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004837Z:bec858b6-0032-4276-b508-acae798179d0" - ], - "Date": [ - "Sat, 19 Dec 2015 00:48:36 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "38ecdd21-a74c-4594-bbea-1a50a7e67383" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14930" - ], - "x-ms-correlation-request-id": [ - "41d7059c-f8a8-4409-8c4e-8504e4792a3e" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004907Z:41d7059c-f8a8-4409-8c4e-8504e4792a3e" - ], - "Date": [ - "Sat, 19 Dec 2015 00:49:06 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "b98887cf-79e2-4488-8a66-f7138f8cbcd8" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14929" - ], - "x-ms-correlation-request-id": [ - "9094f8c3-b82e-49f4-91d6-186615e9607c" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T004937Z:9094f8c3-b82e-49f4-91d6-186615e9607c" - ], - "Date": [ - "Sat, 19 Dec 2015 00:49:36 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "04c010b0-32d4-42cd-9a6b-ad234c4d53e8" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14928" - ], - "x-ms-correlation-request-id": [ - "b43d8c60-f85a-4a6b-b112-b1e10157c4d7" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005007Z:b43d8c60-f85a-4a6b-b112-b1e10157c4d7" - ], - "Date": [ - "Sat, 19 Dec 2015 00:50:06 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "4cdb2581-65c5-46d4-add4-e29147d87468" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14927" - ], - "x-ms-correlation-request-id": [ - "2907ede7-220f-41b8-930a-9dffb414aae8" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005037Z:2907ede7-220f-41b8-930a-9dffb414aae8" - ], - "Date": [ - "Sat, 19 Dec 2015 00:50:37 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "b990bee0-7f4c-42e8-a6f1-a394e7176519" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14926" - ], - "x-ms-correlation-request-id": [ - "1e146910-a609-484f-947d-d73491e93658" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005107Z:1e146910-a609-484f-947d-d73491e93658" - ], - "Date": [ - "Sat, 19 Dec 2015 00:51:07 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "5917df05-b0c5-4623-9553-4a179f1296f8" + "0bc00ef8-4ca2-4c73-9b32-52c892ac9823" ], "Cache-Control": [ "no-cache" @@ -5767,23 +4337,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14925" + "14943" ], "x-ms-correlation-request-id": [ - "106811eb-79ba-4590-847c-364d34db7ab1" + "8300ff49-4a43-46f5-94a3-a96fc793a4d6" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005137Z:106811eb-79ba-4590-847c-364d34db7ab1" + "WESTUS:20160220T022608Z:8300ff49-4a43-46f5-94a3-a96fc793a4d6" ], "Date": [ - "Sat, 19 Dec 2015 00:51:37 GMT" + "Sat, 20 Feb 2016 02:26:07 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -5791,7 +4361,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -5809,10 +4379,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "44d9e0b0-ceba-42d3-910c-def6b75ecf97" + "7c9e7ba5-e403-411a-a8a3-c6b2706079f9" ], "Cache-Control": [ "no-cache" @@ -5822,23 +4392,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14924" + "14942" ], "x-ms-correlation-request-id": [ - "4a761d6c-a176-498f-8bca-7e4e8fb03333" + "0e388aaa-7d4e-4e33-85fb-3e5fccf50763" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005207Z:4a761d6c-a176-498f-8bca-7e4e8fb03333" + "WESTUS:20160220T022638Z:0e388aaa-7d4e-4e33-85fb-3e5fccf50763" ], "Date": [ - "Sat, 19 Dec 2015 00:52:07 GMT" + "Sat, 20 Feb 2016 02:26:37 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -5846,7 +4416,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -5864,10 +4434,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "090f15e3-967d-499e-9739-7b8d79fbbec5" + "2b151798-1a1b-4846-b071-ee727f48d64b" ], "Cache-Control": [ "no-cache" @@ -5877,23 +4447,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14923" + "14941" ], "x-ms-correlation-request-id": [ - "faabc25c-5937-4cdf-90c5-80fddd740686" + "75f641e7-68c0-470e-a2aa-76f435d49ef5" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005237Z:faabc25c-5937-4cdf-90c5-80fddd740686" + "WESTUS:20160220T022708Z:75f641e7-68c0-470e-a2aa-76f435d49ef5" ], "Date": [ - "Sat, 19 Dec 2015 00:52:37 GMT" + "Sat, 20 Feb 2016 02:27:08 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -5901,7 +4471,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -5919,10 +4489,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "03379875-8f63-40a9-96d7-61d784a2e278" + "46a83f8b-a754-4af3-8be0-a7e12ed3ea94" ], "Cache-Control": [ "no-cache" @@ -5932,23 +4502,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14922" + "14940" ], "x-ms-correlation-request-id": [ - "4503dab5-f863-45f1-b656-702893c250fe" + "01ffd017-dd54-4280-bff1-7aa5097f84c0" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005308Z:4503dab5-f863-45f1-b656-702893c250fe" + "WESTUS:20160220T022738Z:01ffd017-dd54-4280-bff1-7aa5097f84c0" ], "Date": [ - "Sat, 19 Dec 2015 00:53:07 GMT" + "Sat, 20 Feb 2016 02:27:37 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -5956,7 +4526,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -5974,10 +4544,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "1574373e-4fe8-46be-8a5d-52aefcfa7e62" + "14268cfd-b41c-421d-9009-ce22aa2dab30" ], "Cache-Control": [ "no-cache" @@ -5987,23 +4557,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14921" + "14939" ], "x-ms-correlation-request-id": [ - "4ea495c8-4578-4064-ac72-1258f98654a9" + "f67fdae4-f27c-434f-8a9f-4075a10d7a6e" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005338Z:4ea495c8-4578-4064-ac72-1258f98654a9" + "WESTUS:20160220T022808Z:f67fdae4-f27c-434f-8a9f-4075a10d7a6e" ], "Date": [ - "Sat, 19 Dec 2015 00:53:37 GMT" + "Sat, 20 Feb 2016 02:28:07 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6011,7 +4581,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6029,10 +4599,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "eaba120f-7922-4258-896b-e623841666b7" + "86ad92b6-f7fa-417c-89b8-c7dc7b0c915a" ], "Cache-Control": [ "no-cache" @@ -6042,23 +4612,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14920" + "14938" ], "x-ms-correlation-request-id": [ - "e74f9097-00bb-4d34-a19c-32aeda13ff77" + "088bffe1-e20d-4e63-b889-557fd781f580" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005408Z:e74f9097-00bb-4d34-a19c-32aeda13ff77" + "WESTUS:20160220T022838Z:088bffe1-e20d-4e63-b889-557fd781f580" ], "Date": [ - "Sat, 19 Dec 2015 00:54:07 GMT" + "Sat, 20 Feb 2016 02:28:38 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6066,7 +4636,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6084,10 +4654,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "f4c5d185-6222-4055-aff3-1b6b7d2744e9" + "12e7f721-eb84-4639-9985-590c0ed380a1" ], "Cache-Control": [ "no-cache" @@ -6097,23 +4667,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14919" + "14937" ], "x-ms-correlation-request-id": [ - "961e52ef-b04b-4cd9-aaaf-b7f747af0ad1" + "b97cd5ac-6069-483d-b589-66ec2a14a957" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005438Z:961e52ef-b04b-4cd9-aaaf-b7f747af0ad1" + "WESTUS:20160220T022908Z:b97cd5ac-6069-483d-b589-66ec2a14a957" ], "Date": [ - "Sat, 19 Dec 2015 00:54:38 GMT" + "Sat, 20 Feb 2016 02:29:08 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6121,7 +4691,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6139,10 +4709,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "709aa296-c359-420f-b67f-abfdb442fa39" + "8d684d76-6f2b-4dd3-ac70-89c0b324ed92" ], "Cache-Control": [ "no-cache" @@ -6152,23 +4722,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14916" + "14936" ], "x-ms-correlation-request-id": [ - "a3de1abc-d011-4908-ba8f-430fa900268f" + "8835669a-8d65-4774-9e7d-7654b3ec768a" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005508Z:a3de1abc-d011-4908-ba8f-430fa900268f" + "WESTUS:20160220T022939Z:8835669a-8d65-4774-9e7d-7654b3ec768a" ], "Date": [ - "Sat, 19 Dec 2015 00:55:08 GMT" + "Sat, 20 Feb 2016 02:29:38 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6176,7 +4746,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6194,10 +4764,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "7dd4b3d5-5d69-4e2f-9b2f-3ed25280a96d" + "f0ccdb9d-6609-43c6-8de0-159b8bb02d23" ], "Cache-Control": [ "no-cache" @@ -6207,23 +4777,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14915" + "14936" ], "x-ms-correlation-request-id": [ - "bbf4a33d-a271-4423-ad0e-20fbb87fe5b6" + "3a8c4312-f5b1-4a2b-95a3-5e590ed0103a" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005538Z:bbf4a33d-a271-4423-ad0e-20fbb87fe5b6" + "WESTUS:20160220T023009Z:3a8c4312-f5b1-4a2b-95a3-5e590ed0103a" ], "Date": [ - "Sat, 19 Dec 2015 00:55:38 GMT" + "Sat, 20 Feb 2016 02:30:08 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6231,7 +4801,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6249,10 +4819,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "67960972-0da9-4b37-ac14-dd7e1e52188f" + "7a15ccec-66d3-409c-8df4-9a65645ed789" ], "Cache-Control": [ "no-cache" @@ -6262,23 +4832,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14914" + "14935" ], "x-ms-correlation-request-id": [ - "049ff298-45b7-444b-b5bc-cb1a57eb18b4" + "bf222273-ead4-49be-96dd-372d92d735e6" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005608Z:049ff298-45b7-444b-b5bc-cb1a57eb18b4" + "WESTUS:20160220T023039Z:bf222273-ead4-49be-96dd-372d92d735e6" ], "Date": [ - "Sat, 19 Dec 2015 00:56:08 GMT" + "Sat, 20 Feb 2016 02:30:38 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6286,7 +4856,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6304,10 +4874,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "ba7a977d-7dc0-4beb-9a36-d606838a6d23" + "ed5cfeea-2c3e-4a96-8d79-3a22eb39be1c" ], "Cache-Control": [ "no-cache" @@ -6317,23 +4887,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14912" + "14934" ], "x-ms-correlation-request-id": [ - "8d2b8e03-f7d9-48e8-b93a-106650c71237" + "f5297c31-0ba0-4fef-97fe-8590d8e6cd06" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005638Z:8d2b8e03-f7d9-48e8-b93a-106650c71237" + "WESTUS:20160220T023109Z:f5297c31-0ba0-4fef-97fe-8590d8e6cd06" ], "Date": [ - "Sat, 19 Dec 2015 00:56:38 GMT" + "Sat, 20 Feb 2016 02:31:08 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6341,7 +4911,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6359,10 +4929,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "207c88dc-f0f3-49ce-98c8-93f7b8af957c" + "c8e2e519-319a-43c4-a608-e0307ca3da76" ], "Cache-Control": [ "no-cache" @@ -6372,23 +4942,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14910" + "14933" ], "x-ms-correlation-request-id": [ - "bf72c4f4-29e1-4bec-8176-9366f879ea35" + "ab543752-1037-4936-b784-c9fcf1577a10" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005709Z:bf72c4f4-29e1-4bec-8176-9366f879ea35" + "WESTUS:20160220T023139Z:ab543752-1037-4936-b784-c9fcf1577a10" ], "Date": [ - "Sat, 19 Dec 2015 00:57:09 GMT" + "Sat, 20 Feb 2016 02:31:38 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6396,7 +4966,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6414,10 +4984,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "c26e9e7d-e50e-4cca-a661-e079c07763aa" + "c9f5827a-8b9a-47ea-ab5b-dc27cea3afc7" ], "Cache-Control": [ "no-cache" @@ -6427,23 +4997,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14909" + "14932" ], "x-ms-correlation-request-id": [ - "6c087c18-c886-4bd7-b736-d5b7886ee34c" + "9a3b434a-c179-4ad2-99b6-7e8b75157fa3" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005739Z:6c087c18-c886-4bd7-b736-d5b7886ee34c" + "WESTUS:20160220T023209Z:9a3b434a-c179-4ad2-99b6-7e8b75157fa3" ], "Date": [ - "Sat, 19 Dec 2015 00:57:38 GMT" + "Sat, 20 Feb 2016 02:32:09 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6451,7 +5021,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6469,10 +5039,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "ddee22c3-aebe-464e-95ec-5a33d299796c" + "6437bdc2-2bab-4054-b00d-fe11179d924d" ], "Cache-Control": [ "no-cache" @@ -6482,23 +5052,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14907" + "14931" ], "x-ms-correlation-request-id": [ - "cb7f0460-ddfb-43ab-aecb-86dc315d33f7" + "41d94046-f1ae-482c-8ee9-030bc4ade592" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005809Z:cb7f0460-ddfb-43ab-aecb-86dc315d33f7" + "WESTUS:20160220T023239Z:41d94046-f1ae-482c-8ee9-030bc4ade592" ], "Date": [ - "Sat, 19 Dec 2015 00:58:08 GMT" + "Sat, 20 Feb 2016 02:32:39 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6506,7 +5076,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6524,10 +5094,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "6aa552b4-08d7-4d7a-97d7-f951bd16ec81" + "59ed4a38-6b85-46c1-b513-beaa36cfd2b4" ], "Cache-Control": [ "no-cache" @@ -6537,23 +5107,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14902" + "14930" ], "x-ms-correlation-request-id": [ - "58b10b3c-76f3-453c-b0dc-d2f9c70c6420" + "c0d84f7c-05b7-4406-bc74-2b9e8313ae4e" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005839Z:58b10b3c-76f3-453c-b0dc-d2f9c70c6420" + "WESTUS:20160220T023309Z:c0d84f7c-05b7-4406-bc74-2b9e8313ae4e" ], "Date": [ - "Sat, 19 Dec 2015 00:58:38 GMT" + "Sat, 20 Feb 2016 02:33:09 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6561,7 +5131,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6579,10 +5149,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "112bf129-fff1-41ed-8e2b-f8a1c3ade181" + "2ecce813-445f-48e6-86ed-7f10dfa85838" ], "Cache-Control": [ "no-cache" @@ -6592,23 +5162,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14898" + "14929" ], "x-ms-correlation-request-id": [ - "c1e0e4df-2fb0-4231-8e55-738022b1bd0b" + "fcbc3bb8-c0ed-449c-98ac-3e9892d874d8" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005909Z:c1e0e4df-2fb0-4231-8e55-738022b1bd0b" + "WESTUS:20160220T023339Z:fcbc3bb8-c0ed-449c-98ac-3e9892d874d8" ], "Date": [ - "Sat, 19 Dec 2015 00:59:08 GMT" + "Sat, 20 Feb 2016 02:33:39 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6616,7 +5186,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6634,10 +5204,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "45d43a1f-ae66-4024-accb-1d23800c1197" + "e42bbc2f-11a8-4365-89a5-43503400a69b" ], "Cache-Control": [ "no-cache" @@ -6647,23 +5217,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14894" + "14928" ], "x-ms-correlation-request-id": [ - "864cf0a8-cf27-4de8-980b-472ffb0249a1" + "677fd46e-39e4-4264-8423-ace2e03a66b0" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T005939Z:864cf0a8-cf27-4de8-980b-472ffb0249a1" + "WESTUS:20160220T023410Z:677fd46e-39e4-4264-8423-ace2e03a66b0" ], "Date": [ - "Sat, 19 Dec 2015 00:59:38 GMT" + "Sat, 20 Feb 2016 02:34:10 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6671,7 +5241,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -6689,10 +5259,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "47973654-d3a3-4355-ba6b-d77e0c98904f" + "4204ccb9-393a-466c-a5b0-e84ab56eafd9" ], "Cache-Control": [ "no-cache" @@ -6702,23 +5272,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14891" + "14927" ], "x-ms-correlation-request-id": [ - "1ab75704-2f52-49c5-9ac3-5e2d90528cec" + "eeb31bde-51f3-4490-82fb-edb9af864fe4" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010009Z:1ab75704-2f52-49c5-9ac3-5e2d90528cec" + "WESTUS:20160220T023440Z:eeb31bde-51f3-4490-82fb-edb9af864fe4" ], "Date": [ - "Sat, 19 Dec 2015 01:00:08 GMT" + "Sat, 20 Feb 2016 02:34:39 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/e88c810d-696a-4991-ba63-ad4ae45c8de1?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZTg4YzgxMGQtNjk2YS00OTkxLWJhNjMtYWQ0YWU0NWM4ZGUxP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/d7ce8ea0-981c-499c-b295-cdf090ba8f9a?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvZDdjZThlYTAtOTgxYy00OTljLWIyOTUtY2RmMDkwYmE4ZjlhP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -6726,10 +5296,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"e88c810d-696a-4991-ba63-ad4ae45c8de1\",\r\n \"status\": \"Failed\",\r\n \"startTime\": \"2015-12-18T16:38:34.6521656-08:00\",\r\n \"endTime\": \"2015-12-18T17:00:15.0602241-08:00\",\r\n \"error\": {\r\n \"code\": \"VMExtensionProvisioningError\",\r\n \"message\": \"VM has reported a failure when processing extension 'Microsoft.Powershell.DSC'. Error message: \\\"Error downloading http://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_setup.exe: Exception calling \\\"DownloadFile\\\" with \\\"2\\\" argument(s): \\\"The remote name could not be resolved: 'download.microsoft.com'\\\"\\\".\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"d7ce8ea0-981c-499c-b295-cdf090ba8f9a\",\r\n \"status\": \"Succeeded\",\r\n \"startTime\": \"2016-02-19T18:18:34.4521006-08:00\",\r\n \"endTime\": \"2016-02-19T18:34:56.2651689-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "625" + "191" ], "Content-Type": [ "application/json; charset=utf-8" @@ -6744,10 +5314,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "33b3ab0c-5bea-4588-8e21-bbf873e31876" + "c0ea6b1e-9f6d-4fd6-8c26-db837a0bf3aa" ], "Cache-Control": [ "no-cache" @@ -6757,40 +5327,34 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14887" + "14928" ], "x-ms-correlation-request-id": [ - "2980c162-115c-46c7-ac4e-21eee4e3c59b" + "f1baaf35-f2fd-4abb-9ab4-2ebe12d801b5" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010039Z:2980c162-115c-46c7-ac4e-21eee4e3c59b" + "WESTUS:20160220T023510Z:f1baaf35-f2fd-4abb-9ab4-2ebe12d801b5" ], "Date": [ - "Sat, 19 Dec 2015 01:00:39 GMT" + "Sat, 20 Feb 2016 02:35:09 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/Microsoft.Powershell.DSC?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy92bWNycHRlc3RwczYwODQvZXh0ZW5zaW9ucy9NaWNyb3NvZnQuUG93ZXJzaGVsbC5EU0M/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5L2V4dGVuc2lvbnMvTWljcm9zb2Z0LlBvd2Vyc2hlbGwuRFNDP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { - "x-ms-client-request-id": [ - "4a343f44-6e30-4669-9664-20d356a6b95c" - ], - "accept-language": [ - "en-US" - ], "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.8\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {\r\n \"WmfVersion\": \"latest\"\r\n },\r\n \"provisioningState\": \"Failed\"\r\n },\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/Microsoft.Powershell.DSC\",\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", + "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.13\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {},\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC\",\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "552" + "533" ], "Content-Type": [ "application/json; charset=utf-8" @@ -6805,10 +5369,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "b1326412-c452-4999-a9e0-b81f9fc3ee05" + "accbb233-45e9-4dab-9512-f9e21e8e71dc" ], "Cache-Control": [ "no-cache" @@ -6818,28 +5382,28 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14886" + "14927" ], "x-ms-correlation-request-id": [ - "290ab48b-2d4d-4932-bd0a-bce0df29e7dc" + "6998769a-2f37-4397-a227-bb83bc8f9274" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010040Z:290ab48b-2d4d-4932-bd0a-bce0df29e7dc" + "WESTUS:20160220T023510Z:6998769a-2f37-4397-a227-bb83bc8f9274" ], "Date": [ - "Sat, 19 Dec 2015 01:00:39 GMT" + "Sat, 20 Feb 2016 02:35:10 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/Microsoft.Powershell.DSC?$expand=instanceView&api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy92bWNycHRlc3RwczYwODQvZXh0ZW5zaW9ucy9NaWNyb3NvZnQuUG93ZXJzaGVsbC5EU0M/JGV4cGFuZD1pbnN0YW5jZVZpZXcmYXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5L2V4dGVuc2lvbnMvTWljcm9zb2Z0LlBvd2Vyc2hlbGwuRFNDP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "69441eea-db0b-4f6d-814b-7e3bd5185e5c" + "a6ad6e81-55ce-4f96-a413-1df87f5f8784" ], "accept-language": [ "en-US" @@ -6848,10 +5412,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.8\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {\r\n \"WmfVersion\": \"latest\"\r\n },\r\n \"provisioningState\": \"Failed\",\r\n \"instanceView\": {\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Powershell.DSC\",\r\n \"typeHandlerVersion\": \"2.8.0.0\",\r\n \"statuses\": [\r\n {\r\n \"code\": \"ProvisioningState/failed/1000\",\r\n \"level\": \"Error\",\r\n \"displayStatus\": \"Provisioning failed\",\r\n \"message\": \"Error downloading http://download.microsoft.com/download/B/A/4/BA4A7E71-2906-4B2D-A0E1-80CF16844F5F/dotNetFx45_Full_setup.exe: Exception calling \\\"DownloadFile\\\" with \\\"2\\\" argument(s): \\\"The remote name could not be resolved: 'download.microsoft.com'\\\"\",\r\n \"time\": \"2015-12-18T16:58:34-08:00\"\r\n }\r\n ]\r\n }\r\n },\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/Microsoft.Powershell.DSC\",\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", + "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.13\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {},\r\n \"provisioningState\": \"Succeeded\"\r\n },\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC\",\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "1219" + "533" ], "Content-Type": [ "application/json; charset=utf-8" @@ -6866,10 +5430,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "b2460952-056c-4df0-8eeb-4dd15ad7449c" + "df68e9ab-5e93-4634-a337-39c0a543d911" ], "Cache-Control": [ "no-cache" @@ -6879,28 +5443,28 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14885" + "14926" ], "x-ms-correlation-request-id": [ - "78675057-b908-4e49-8bf4-7c8868a97848" + "104f89e5-5252-44ad-9613-9af22606409f" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010040Z:78675057-b908-4e49-8bf4-7c8868a97848" + "WESTUS:20160220T023510Z:104f89e5-5252-44ad-9613-9af22606409f" ], "Date": [ - "Sat, 19 Dec 2015 01:00:39 GMT" + "Sat, 20 Feb 2016 02:35:10 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084/providers/Microsoft.Compute/virtualMachines/vmcrptestps6084/extensions/Microsoft.Powershell.DSC?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczYwODQvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy92bWNycHRlc3RwczYwODQvZXh0ZW5zaW9ucy9NaWNyb3NvZnQuUG93ZXJzaGVsbC5EU0M/YXBpLXZlcnNpb249MjAxNS0wNi0xNQ==", - "RequestMethod": "DELETE", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC?$expand=instanceView&api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5L2V4dGVuc2lvbnMvTWljcm9zb2Z0LlBvd2Vyc2hlbGwuRFNDPyRleHBhbmQ9aW5zdGFuY2VWaWV3JmFwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { "x-ms-client-request-id": [ - "1fb62fa9-9cf0-4798-8628-d21e063d3c31" + "642386d1-9bf5-44d6-a9e1-ee1f8b9fef36" ], "accept-language": [ "en-US" @@ -6909,68 +5473,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "", - "ResponseHeaders": { - "Content-Length": [ - "0" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "159350a9-6255-4955-879d-2a6fb5f1b942" - ], - "Cache-Control": [ - "no-cache" - ], - "Location": [ - "https://management.azure.com/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?monitor=true&api-version=2015-06-15" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-writes": [ - "1196" - ], - "x-ms-correlation-request-id": [ - "5e3254fc-3799-494e-a245-87fe5902c9ca" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010041Z:5e3254fc-3799-494e-a245-87fe5902c9ca" - ], - "Date": [ - "Sat, 19 Dec 2015 01:00:40 GMT" - ] - }, - "StatusCode": 202 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", + "ResponseBody": "{\r\n \"properties\": {\r\n \"publisher\": \"Microsoft.Powershell\",\r\n \"type\": \"DSC\",\r\n \"typeHandlerVersion\": \"2.13\",\r\n \"autoUpgradeMinorVersion\": false,\r\n \"settings\": {},\r\n \"provisioningState\": \"Succeeded\",\r\n \"instanceView\": {\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Powershell.DSC\",\r\n \"typeHandlerVersion\": \"2.13.2.0\",\r\n \"statuses\": [\r\n {\r\n \"code\": \"ProvisioningState/succeeded\",\r\n \"level\": \"Info\",\r\n \"displayStatus\": \"Provisioning succeeded\",\r\n \"message\": \"PowerShell DSC has been enabled.\",\r\n \"time\": \"2016-02-19T18:34:22-08:00\"\r\n }\r\n ]\r\n }\r\n },\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC\",\r\n \"name\": \"Microsoft.Powershell.DSC\",\r\n \"type\": \"Microsoft.Compute/virtualMachines/extensions\",\r\n \"location\": \"eastus\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "141" + "980" ], "Content-Type": [ "application/json; charset=utf-8" @@ -6985,10 +5491,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "bd7e335e-2489-47a1-b127-0498bc72be80" + "5771d626-3d47-44c0-8793-6686dfa6cfaa" ], "Cache-Control": [ "no-cache" @@ -6998,92 +5504,40 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14883" + "14925" ], "x-ms-correlation-request-id": [ - "3085c303-eaff-44e2-8bbf-ef1deddbad7d" + "03f7a760-b114-45a3-a5ec-6e05cf660a22" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010111Z:3085c303-eaff-44e2-8bbf-ef1deddbad7d" + "WESTUS:20160220T023511Z:03f7a760-b114-45a3-a5ec-6e05cf660a22" ], "Date": [ - "Sat, 19 Dec 2015 01:01:10 GMT" + "Sat, 20 Feb 2016 02:35:10 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579/providers/Microsoft.Compute/virtualMachines/vmcrptestps579/extensions/Microsoft.Powershell.DSC?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlR3JvdXBzL2NycHRlc3RwczU3OS9wcm92aWRlcnMvTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVzL3ZtY3JwdGVzdHBzNTc5L2V4dGVuc2lvbnMvTWljcm9zb2Z0LlBvd2Vyc2hlbGwuRFNDP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestMethod": "DELETE", "RequestBody": "", "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "4da8a186-1973-4f58-aba9-c6aa8350adce" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14880" - ], - "x-ms-correlation-request-id": [ - "b64696bd-c484-4b33-bd5b-c57d056a3b3d" + "x-ms-client-request-id": [ + "669405c9-b4e8-4c2c-b2d5-757759eb22f2" ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010141Z:b64696bd-c484-4b33-bd5b-c57d056a3b3d" + "accept-language": [ + "en-US" ], - "Date": [ - "Sat, 19 Dec 2015 01:01:40 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { "User-Agent": [ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", + "ResponseBody": "", "ResponseHeaders": { "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" + "0" ], "Expires": [ "-1" @@ -7091,150 +5545,46 @@ "Pragma": [ "no-cache" ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "5d171408-c56e-4e23-b55a-df3cb4a96ba1" - ], - "Cache-Control": [ - "no-cache" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14879" - ], - "x-ms-correlation-request-id": [ - "25313202-e31b-4410-ac58-7d03fa3881f9" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010211Z:25313202-e31b-4410-ac58-7d03fa3881f9" - ], - "Date": [ - "Sat, 19 Dec 2015 01:02:10 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" + "Azure-AsyncOperation": [ + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/bcfface8-9222-46f4-b633-661903f3c61f?api-version=2015-06-15" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "eb1b74e3-cf76-48dd-bab0-cd6f2655d960" + "bcfface8-9222-46f4-b633-661903f3c61f" ], "Cache-Control": [ "no-cache" ], - "Server": [ - "Microsoft-HTTPAPI/2.0", - "Microsoft-HTTPAPI/2.0" - ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14876" - ], - "x-ms-correlation-request-id": [ - "4d414f4b-8c99-454c-bdde-95a9f5c729cd" - ], - "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010241Z:4d414f4b-8c99-454c-bdde-95a9f5c729cd" - ], - "Date": [ - "Sat, 19 Dec 2015 01:02:40 GMT" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "User-Agent": [ - "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" - ] - }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "141" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Pragma": [ - "no-cache" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" - ], - "x-ms-request-id": [ - "e26af287-e437-4191-afbd-708bf900fbbc" - ], - "Cache-Control": [ - "no-cache" + "Location": [ + "https://management.azure.com/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/bcfface8-9222-46f4-b633-661903f3c61f?monitor=true&api-version=2015-06-15" ], "Server": [ "Microsoft-HTTPAPI/2.0", "Microsoft-HTTPAPI/2.0" ], - "x-ms-ratelimit-remaining-subscription-reads": [ - "14873" + "x-ms-ratelimit-remaining-subscription-writes": [ + "1196" ], "x-ms-correlation-request-id": [ - "db0c5984-eecb-433d-a64f-3dbfbb2240a5" + "cab0ef76-a70c-4e9a-b799-a1ea3debdba3" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010311Z:db0c5984-eecb-433d-a64f-3dbfbb2240a5" + "WESTUS:20160220T023511Z:cab0ef76-a70c-4e9a-b799-a1ea3debdba3" ], "Date": [ - "Sat, 19 Dec 2015 01:03:11 GMT" + "Sat, 20 Feb 2016 02:35:11 GMT" ] }, - "StatusCode": 200 + "StatusCode": 202 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/bcfface8-9222-46f4-b633-661903f3c61f?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYmNmZmFjZTgtOTIyMi00NmY0LWI2MzMtNjYxOTAzZjNjNjFmP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -7242,7 +5592,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"bcfface8-9222-46f4-b633-661903f3c61f\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:35:10.9683524-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -7260,10 +5610,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_130997074525641757" ], "x-ms-request-id": [ - "f45d20a4-69aa-4591-b6d6-cccae80bf0f2" + "e88c5436-c843-4e8b-b9f9-6ed81afa14bb" ], "Cache-Control": [ "no-cache" @@ -7273,23 +5623,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14871" + "14924" ], "x-ms-correlation-request-id": [ - "bf729990-7b65-4763-b815-011713e975dc" + "78b9b95b-0c9d-4174-9c25-73122e6da3a5" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010341Z:bf729990-7b65-4763-b815-011713e975dc" + "WESTUS:20160220T023542Z:78b9b95b-0c9d-4174-9c25-73122e6da3a5" ], "Date": [ - "Sat, 19 Dec 2015 01:03:41 GMT" + "Sat, 20 Feb 2016 02:35:41 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/bcfface8-9222-46f4-b633-661903f3c61f?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYmNmZmFjZTgtOTIyMi00NmY0LWI2MzMtNjYxOTAzZjNjNjFmP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -7297,7 +5647,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"bcfface8-9222-46f4-b633-661903f3c61f\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:35:10.9683524-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -7315,10 +5665,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_131003256838373731" ], "x-ms-request-id": [ - "f92a0fc0-2d3e-4949-992d-58f7a7a09f04" + "00a4cc15-81c5-42cb-b601-acbca9b30181" ], "Cache-Control": [ "no-cache" @@ -7328,23 +5678,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14869" + "14922" ], "x-ms-correlation-request-id": [ - "0fc28905-e58f-4b3d-b1ac-48c3de9d81d8" + "69b031b3-72bf-4acd-bb2b-0f651999f620" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010411Z:0fc28905-e58f-4b3d-b1ac-48c3de9d81d8" + "WESTUS:20160220T023612Z:69b031b3-72bf-4acd-bb2b-0f651999f620" ], "Date": [ - "Sat, 19 Dec 2015 01:04:11 GMT" + "Sat, 20 Feb 2016 02:36:11 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/bcfface8-9222-46f4-b633-661903f3c61f?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYmNmZmFjZTgtOTIyMi00NmY0LWI2MzMtNjYxOTAzZjNjNjFmP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -7352,7 +5702,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"bcfface8-9222-46f4-b633-661903f3c61f\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:35:10.9683524-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -7370,10 +5720,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_131003256838373731" ], "x-ms-request-id": [ - "3228df81-66dc-49f0-8ea1-afa049a87edb" + "7bbd7dcd-1926-4ce8-9091-91c076eb54fe" ], "Cache-Control": [ "no-cache" @@ -7383,23 +5733,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14866" + "14921" ], "x-ms-correlation-request-id": [ - "93e0d433-d1a2-4651-a35c-6ca0e29cd7e6" + "b78ff83d-217c-45bd-916f-20bd491a783d" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010441Z:93e0d433-d1a2-4651-a35c-6ca0e29cd7e6" + "WESTUS:20160220T023642Z:b78ff83d-217c-45bd-916f-20bd491a783d" ], "Date": [ - "Sat, 19 Dec 2015 01:04:41 GMT" + "Sat, 20 Feb 2016 02:36:42 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/bcfface8-9222-46f4-b633-661903f3c61f?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYmNmZmFjZTgtOTIyMi00NmY0LWI2MzMtNjYxOTAzZjNjNjFmP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -7407,7 +5757,7 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"bcfface8-9222-46f4-b633-661903f3c61f\",\r\n \"status\": \"InProgress\",\r\n \"startTime\": \"2016-02-19T18:35:10.9683524-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ "141" @@ -7425,10 +5775,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_131003256838373731" ], "x-ms-request-id": [ - "a5101651-fd3a-467b-8951-c0367f56fa91" + "9eb902cb-0d14-4de0-8eb9-0811f87442bf" ], "Cache-Control": [ "no-cache" @@ -7438,23 +5788,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14865" + "14920" ], "x-ms-correlation-request-id": [ - "66f61699-bccd-4801-a9a3-88887aae8f05" + "36379ae9-63ea-4f0c-8a15-ddd2715c1952" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010512Z:66f61699-bccd-4801-a9a3-88887aae8f05" + "WESTUS:20160220T023712Z:36379ae9-63ea-4f0c-8a15-ddd2715c1952" ], "Date": [ - "Sat, 19 Dec 2015 01:05:11 GMT" + "Sat, 20 Feb 2016 02:37:12 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/providers/Microsoft.Compute/locations/eastus/operations/159350a9-6255-4955-879d-2a6fb5f1b942?api-version=2015-06-15", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvMTU5MzUwYTktNjI1NS00OTU1LTg3OWQtMmE2ZmI1ZjFiOTQyP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/providers/Microsoft.Compute/locations/eastus/operations/bcfface8-9222-46f4-b633-661903f3c61f?api-version=2015-06-15", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29tcHV0ZS9sb2NhdGlvbnMvZWFzdHVzL29wZXJhdGlvbnMvYmNmZmFjZTgtOTIyMi00NmY0LWI2MzMtNjYxOTAzZjNjNjFmP2FwaS12ZXJzaW9uPTIwMTUtMDYtMTU=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -7462,10 +5812,10 @@ "Microsoft.Azure.Management.Compute.ComputeManagementClient/10.0.0.0" ] }, - "ResponseBody": "{\r\n \"operationId\": \"159350a9-6255-4955-879d-2a6fb5f1b942\",\r\n \"status\": \"Succeeded\",\r\n \"startTime\": \"2015-12-18T17:00:40.0950027-08:00\",\r\n \"endTime\": \"2015-12-18T17:05:34.735256-08:00\"\r\n}", + "ResponseBody": "{\r\n \"operationId\": \"bcfface8-9222-46f4-b633-661903f3c61f\",\r\n \"status\": \"Succeeded\",\r\n \"startTime\": \"2016-02-19T18:35:10.9683524-08:00\",\r\n \"endTime\": \"2016-02-19T18:37:32.4465865-08:00\"\r\n}", "ResponseHeaders": { "Content-Length": [ - "190" + "191" ], "Content-Type": [ "application/json; charset=utf-8" @@ -7480,10 +5830,10 @@ "max-age=31536000; includeSubDomains" ], "x-ms-served-by": [ - "bc9c7ae8-272f-468c-91ab-42b5442bf96b_130942857897298154" + "d94d0c8f-9d39-4ae5-ba9c-061cff9453ac_131003256838373731" ], "x-ms-request-id": [ - "4897fdd8-17ed-4e96-b084-0941b18da578" + "c9d6e055-de0b-42fb-be2b-5938f6cc45ed" ], "Cache-Control": [ "no-cache" @@ -7493,23 +5843,23 @@ "Microsoft-HTTPAPI/2.0" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14864" + "14919" ], "x-ms-correlation-request-id": [ - "259f4b78-9d5e-478d-bea0-da126ee15c37" + "161ed20f-f55d-4cdc-b9b9-e2009821aace" ], "x-ms-routing-request-id": [ - "CENTRALUS:20151219T010542Z:259f4b78-9d5e-478d-bea0-da126ee15c37" + "WESTUS:20160220T023742Z:161ed20f-f55d-4cdc-b9b9-e2009821aace" ], "Date": [ - "Sat, 19 Dec 2015 01:05:41 GMT" + "Sat, 20 Feb 2016 02:37:42 GMT" ] }, "StatusCode": 200 }, { - "RequestUri": "/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourcegroups/crptestps6084?api-version=2014-04-01-preview", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjRmYjIzZTMtNmJhMy00MWYwLTliNmUtZTQxMTMxZDVkNjFlL3Jlc291cmNlZ3JvdXBzL2NycHRlc3RwczYwODQ/YXBpLXZlcnNpb249MjAxNC0wNC0wMS1wcmV2aWV3", + "RequestUri": "/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourcegroups/crptestps579?api-version=2014-04-01-preview", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvNGM4NWNiODMtNGNhZC00NmNkLWE3NzEtZmY5ZDFjMDc5ZGUyL3Jlc291cmNlZ3JvdXBzL2NycHRlc3RwczU3OT9hcGktdmVyc2lvbj0yMDE0LTA0LTAxLXByZXZpZXc=", "RequestMethod": "GET", "RequestBody": "", "RequestHeaders": { @@ -7517,10 +5867,10 @@ "Microsoft.Azure.Management.Resources.ResourceManagementClient/2.0.0.0" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/24fb23e3-6ba3-41f0-9b6e-e41131d5d61e/resourceGroups/crptestps6084\",\r\n \"name\": \"crptestps6084\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/4c85cb83-4cad-46cd-a771-ff9d1c079de2/resourceGroups/crptestps579\",\r\n \"name\": \"crptestps579\",\r\n \"location\": \"eastus\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", "ResponseHeaders": { "Content-Length": [ - "179" + "177" ], "Content-Type": [ "application/json; charset=utf-8" @@ -7532,16 +5882,16 @@ "no-cache" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "14998" + "14985" ], "x-ms-request-id": [ - "e4cb50f8-d46d-402d-8e1b-aa5c81a16ce1" + "fbaadfff-a4c2-4ed6-b13a-b7614c78f932" ], "x-ms-correlation-request-id": [ - "e4cb50f8-d46d-402d-8e1b-aa5c81a16ce1" + "fbaadfff-a4c2-4ed6-b13a-b7614c78f932" ], "x-ms-routing-request-id": [ - "WESTUS:20151219T010542Z:e4cb50f8-d46d-402d-8e1b-aa5c81a16ce1" + "WESTUS:20160220T023742Z:fbaadfff-a4c2-4ed6-b13a-b7614c78f932" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -7550,7 +5900,7 @@ "no-cache" ], "Date": [ - "Sat, 19 Dec 2015 01:05:42 GMT" + "Sat, 20 Feb 2016 02:37:41 GMT" ] }, "StatusCode": 200 @@ -7558,12 +5908,10 @@ ], "Names": { "Test-GetAzureRmVMDscExtension": [ - "crptestps6084" + "crptestps579" ] }, "Variables": { - "SubscriptionId": "24fb23e3-6ba3-41f0-9b6e-e41131d5d61e", - "TenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47", - "Domain": "microsoft.com" + "SubscriptionId": "4c85cb83-4cad-46cd-a771-ff9d1c079de2" } } \ No newline at end of file diff --git a/src/ResourceManager/Compute/Commands.Compute.Test/packages.config b/src/ResourceManager/Compute/Commands.Compute.Test/packages.config index 074e077e8ece..fbd5062b2d5f 100644 --- a/src/ResourceManager/Compute/Commands.Compute.Test/packages.config +++ b/src/ResourceManager/Compute/Commands.Compute.Test/packages.config @@ -2,28 +2,30 @@ - - - + + - - + + - - - - + + + - - - + + + + + + + diff --git a/src/ResourceManager/Compute/Commands.Compute/Commands.Compute.csproj b/src/ResourceManager/Compute/Commands.Compute/Commands.Compute.csproj index b3b95b251d5d..caa005a9bddd 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Commands.Compute.csproj +++ b/src/ResourceManager/Compute/Commands.Compute/Commands.Compute.csproj @@ -58,10 +58,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -80,13 +76,12 @@ ..\..\..\packages\Microsoft.Azure.Management.Authorization.2.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll True - - False - ..\..\..\packages\Microsoft.Azure.Management.Compute.11.1.1-prerelease\lib\net45\Microsoft.Azure.Management.Compute.dll + + ..\..\..\packages\Microsoft.Azure.Management.Compute.11.2.0-prerelease\lib\net45\Microsoft.Azure.Management.Compute.dll True - ..\..\..\packages\Microsoft.Azure.Management.Network.3.1.0-preview\lib\net45\Microsoft.Azure.Management.Network.dll + ..\..\..\packages\Microsoft.Azure.Management.Network.3.2.0-preview\lib\net45\Microsoft.Azure.Management.Network.dll True @@ -112,12 +107,16 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.2.5.4\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -142,10 +141,6 @@ ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.1.1\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - @@ -330,6 +325,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ResourceManager/Compute/Commands.Compute/Common/ComputeClient.cs b/src/ResourceManager/Compute/Commands.Compute/Common/ComputeClient.cs index 7f0dd4707bcd..76ef9ac50c12 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Common/ComputeClient.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Common/ComputeClient.cs @@ -12,10 +12,10 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Compute; using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Compute { diff --git a/src/ResourceManager/Compute/Commands.Compute/Common/ComputeCloudException.cs b/src/ResourceManager/Compute/Commands.Compute/Common/ComputeCloudException.cs index 4a8c032283d6..3ad864bc49d1 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Common/ComputeCloudException.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Common/ComputeCloudException.cs @@ -54,7 +54,8 @@ protected static string GetErrorMessageWithRequestIdInfo(Rest.Azure.CloudExcepti if (cloudException.Response.StatusCode.Equals(HttpStatusCode.OK) && cloudException.Response.Content != null) { - var errorReturned = JsonConvert.DeserializeObject(cloudException.Response.Content.ReadAsStringAsync().Result); + var errorReturned = JsonConvert.DeserializeObject( + cloudException.Response.Content); sb.AppendLine().AppendFormat("StartTime: {0}", errorReturned.StartTime); sb.AppendLine().AppendFormat("EndTime: {0}", errorReturned.EndTime); @@ -73,7 +74,7 @@ protected static string GetErrorMessageWithRequestIdInfo(Rest.Azure.CloudExcepti sb.AppendLine().AppendFormat("StatusCode: {0}", cloudException.Response.StatusCode.GetHashCode()); sb.AppendLine().AppendFormat("ReasonPhrase: {0}", cloudException.Response.ReasonPhrase); if (cloudException.Response.Headers == null - || !cloudException.Response.Headers.Contains(RequestIdHeaderInResponse)) + || !cloudException.Response.Headers.ContainsKey(RequestIdHeaderInResponse)) { return sb.ToString(); } diff --git a/src/ResourceManager/Compute/Commands.Compute/Common/DiagnosticsHelper.cs b/src/ResourceManager/Compute/Commands.Compute/Common/DiagnosticsHelper.cs index 91530f18e349..e20acf7ff1e6 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Common/DiagnosticsHelper.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Common/DiagnosticsHelper.cs @@ -19,8 +19,8 @@ using System.Text; using System.Xml; using System.Xml.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Management.Storage.Models; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Storage; using Microsoft.Azure.Management.Storage.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/AzureVMBackupExtensionUtil.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/AzureVMBackupExtensionUtil.cs index a27a0c0b669f..875a4b8d34e5 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/AzureVMBackupExtensionUtil.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/AzureVMBackupExtensionUtil.cs @@ -16,8 +16,8 @@ using Microsoft.Azure.Commands.Compute.Extension.AzureDiskEncryption; using Microsoft.Azure.Commands.Compute.Models; using Microsoft.Azure.Commands.Compute.StorageServices; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Compute; using Microsoft.Azure.Management.Compute.Models; using Microsoft.Azure.Management.Storage; @@ -32,6 +32,8 @@ using System.Text; using System.Threading; using System.Threading.Tasks; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Compute.Common; namespace Microsoft.Azure.Commands.Compute.Extension.AzureVMBackup diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/RemoveAzureVMBackup.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/RemoveAzureVMBackup.cs index 23e4a97ffeed..e3782ba6b214 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/RemoveAzureVMBackup.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/RemoveAzureVMBackup.cs @@ -18,8 +18,8 @@ using Microsoft.Azure.Commands.Compute.Extension.AzureVMBackup; using Microsoft.Azure.Commands.Compute.Models; using Microsoft.Azure.Commands.Compute.StorageServices; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Compute; using Microsoft.Azure.Management.Compute.Models; using Microsoft.Azure.Management.Storage; diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/SetAzureVMBackupExtension.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/SetAzureVMBackupExtension.cs index b454aeef02f3..552546256e11 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/SetAzureVMBackupExtension.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/AzureVMBackup/SetAzureVMBackupExtension.cs @@ -17,8 +17,8 @@ using Microsoft.Azure.Commands.Compute.Extension.AzureVMBackup; using Microsoft.Azure.Commands.Compute.Models; using Microsoft.Azure.Commands.Compute.StorageServices; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Compute; using Microsoft.Azure.Management.Compute.Models; using Microsoft.Azure.Management.Storage; diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/CustomScript/SetAzureVMCustomScriptExtensionCommand.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/CustomScript/SetAzureVMCustomScriptExtensionCommand.cs index a98d03196d35..e689da6b7498 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/CustomScript/SetAzureVMCustomScriptExtensionCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/CustomScript/SetAzureVMCustomScriptExtensionCommand.cs @@ -12,8 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Commands.Compute.Common; using Microsoft.Azure.Commands.Compute.Models; using Microsoft.Azure.Management.Compute; @@ -28,6 +28,7 @@ using System.Management.Automation; using System.Linq; using AutoMapper; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Compute { @@ -237,7 +238,7 @@ public override void ExecuteCmdlet() catch (Rest.Azure.CloudException ex) { var errorReturned = JsonConvert.DeserializeObject( - ex.Response.Content.ReadAsStringAsync().Result); + ex.Response.Content); WriteObject(errorReturned); } }); diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/PublishAzureVMDscConfigurationCommand.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/PublishAzureVMDscConfigurationCommand.cs index 40ecd582b384..13b79542c93b 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/PublishAzureVMDscConfigurationCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/PublishAzureVMDscConfigurationCommand.cs @@ -1,10 +1,11 @@ using Microsoft.Azure.Commands.Compute.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.WindowsAzure.Commands.Common.Extensions.DSC; using Microsoft.WindowsAzure.Commands.Common.Extensions.DSC.Publish; using Microsoft.WindowsAzure.Storage.Auth; using System; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Compute.Extension.DSC { diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/RemoveAzureVMDscExtensionCommand.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/RemoveAzureVMDscExtensionCommand.cs index 0015c3d3dd37..cb658de13572 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/RemoveAzureVMDscExtensionCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/RemoveAzureVMDscExtensionCommand.cs @@ -59,7 +59,8 @@ public override void ExecuteCmdlet() //Add retry logic due to CRP service restart known issue CRP bug: 3564713 var count = 1; Rest.Azure.AzureOperationResponse op = null; - while (count <= 2) + + while (true) { op = VirtualMachineExtensionClient.DeleteWithHttpMessagesAsync( ResourceGroupName, @@ -70,12 +71,15 @@ public override void ExecuteCmdlet() //&& op.Error != null && "InternalExecutionError".Equals(op.Error.Code)) { count++; + if (count <= 2) + { + continue; + } } - else - { - break; - } + + break; } + var result = Mapper.Map(op); WriteObject(result); } diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/SetAzureVMDscExtensionCommand.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/SetAzureVMDscExtensionCommand.cs index 482110c79a7a..e777900f667b 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/SetAzureVMDscExtensionCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/DSC/SetAzureVMDscExtensionCommand.cs @@ -1,7 +1,7 @@ using AutoMapper; using Microsoft.Azure.Commands.Compute.Common; using Microsoft.Azure.Commands.Compute.Models; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Compute; using Microsoft.Azure.Management.Compute.Models; using Microsoft.WindowsAzure.Commands.Common.Extensions.DSC; @@ -15,6 +15,7 @@ using System.IO; using System.Management.Automation; using System.Text.RegularExpressions; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Newtonsoft.Json; namespace Microsoft.Azure.Commands.Compute.Extension.DSC @@ -365,7 +366,8 @@ private void CreateConfiguration() //Add retry logic due to CRP service restart known issue CRP bug: 3564713 var count = 1; Rest.Azure.AzureOperationResponse op = null; - while (count <= 2) + + while (true) { try { @@ -374,22 +376,28 @@ private void CreateConfiguration() VMName, Name ?? DscExtensionCmdletConstants.ExtensionPublishedNamespace + "." + DscExtensionCmdletConstants.ExtensionPublishedName, parameters).GetAwaiter().GetResult(); + + break; } catch (Rest.Azure.CloudException ex) { - var errorReturned = JsonConvert.DeserializeObject(ex.Response.Content.ReadAsStringAsync().Result); + var errorReturned = JsonConvert.DeserializeObject( + ex.Response.Content); if (ComputeOperationStatus.Failed.Equals(errorReturned.Status) && errorReturned.Error != null && "InternalExecutionError".Equals(errorReturned.Error.Code)) { count++; + if (count <= 2) + { + continue; + } } - else - { - break; - } + + ThrowTerminatingError(new ErrorRecord(ex, "InvalidResult", ErrorCategory.InvalidResult, null)); } } + var result = Mapper.Map(op); WriteObject(result); } diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/Diagnostics/SetAzureRmVMDiagnosticsExtension.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/Diagnostics/SetAzureRmVMDiagnosticsExtension.cs index 0658e2662210..51936e9ee50c 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/Diagnostics/SetAzureRmVMDiagnosticsExtension.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/Diagnostics/SetAzureRmVMDiagnosticsExtension.cs @@ -16,10 +16,12 @@ using System.Collections; using System.Management.Automation; using AutoMapper; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Compute.Common; using Microsoft.Azure.Commands.Compute.Models; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Compute.Models; using Microsoft.Azure.Management.Storage; using Microsoft.WindowsAzure.Commands.Common.Storage; diff --git a/src/ResourceManager/Compute/Commands.Compute/Extension/SqlServer/SetAzureVMSqlServerExtensionCommand.cs b/src/ResourceManager/Compute/Commands.Compute/Extension/SqlServer/SetAzureVMSqlServerExtensionCommand.cs index 7b28fe28b8d9..c3f4e4f9857a 100644 --- a/src/ResourceManager/Compute/Commands.Compute/Extension/SqlServer/SetAzureVMSqlServerExtensionCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/Extension/SqlServer/SetAzureVMSqlServerExtensionCommand.cs @@ -122,7 +122,7 @@ public override void ExecuteCmdlet() } catch (Rest.Azure.CloudException ex) { - var errorReturned = JsonConvert.DeserializeObject(ex.Response.Content.ReadAsStringAsync().Result); + var errorReturned = JsonConvert.DeserializeObject(ex.Response.Content); if (ComputeOperationStatus.Failed.Equals(errorReturned.Status) && errorReturned.Error != null && "InternalExecutionError".Equals(errorReturned.Error.Code)) diff --git a/src/ResourceManager/Compute/Commands.Compute/StorageServices/AddAzureVhdCommand.cs b/src/ResourceManager/Compute/Commands.Compute/StorageServices/AddAzureVhdCommand.cs index ecec4a3efaa2..c997bd005732 100644 --- a/src/ResourceManager/Compute/Commands.Compute/StorageServices/AddAzureVhdCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/StorageServices/AddAzureVhdCommand.cs @@ -14,12 +14,14 @@ using Microsoft.Azure.Commands.Compute.Common; using Microsoft.Azure.Commands.Compute.Models; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.WindowsAzure.Commands.Sync.Download; using System; using System.IO; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Rsrc = Microsoft.Azure.Commands.Compute.Properties.Resources; using Microsoft.Azure.Management.Storage; using Microsoft.Azure.Commands.ResourceManager.Common; diff --git a/src/ResourceManager/Compute/Commands.Compute/StorageServices/SaveAzureVhdCommand.cs b/src/ResourceManager/Compute/Commands.Compute/StorageServices/SaveAzureVhdCommand.cs index 5f5bed8a0c7a..637e1554f2b9 100644 --- a/src/ResourceManager/Compute/Commands.Compute/StorageServices/SaveAzureVhdCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/StorageServices/SaveAzureVhdCommand.cs @@ -14,13 +14,15 @@ using Microsoft.Azure.Commands.Compute.Common; using Microsoft.Azure.Commands.Compute.Models; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Storage; using Microsoft.WindowsAzure.Commands.Sync.Download; using System; using System.IO; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Compute.StorageServices { diff --git a/src/ResourceManager/Compute/Commands.Compute/StorageServices/StorageCredentialsFactory.cs b/src/ResourceManager/Compute/Commands.Compute/StorageServices/StorageCredentialsFactory.cs index 694f5de87f88..ddbbc00e184b 100644 --- a/src/ResourceManager/Compute/Commands.Compute/StorageServices/StorageCredentialsFactory.cs +++ b/src/ResourceManager/Compute/Commands.Compute/StorageServices/StorageCredentialsFactory.cs @@ -12,11 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Storage; using Microsoft.WindowsAzure.Commands.Sync.Download; using Microsoft.WindowsAzure.Storage.Auth; using System; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Rsrc = Microsoft.Azure.Commands.Compute.Properties.Resources; namespace Microsoft.Azure.Commands.Compute.StorageServices diff --git a/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Config/SetAzureVMBootDiagnosticsCommand.cs b/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Config/SetAzureVMBootDiagnosticsCommand.cs index eeb9384a9ca1..eb85519c27e8 100644 --- a/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Config/SetAzureVMBootDiagnosticsCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Config/SetAzureVMBootDiagnosticsCommand.cs @@ -14,14 +14,16 @@ using Microsoft.Azure.Commands.Compute.Common; using Microsoft.Azure.Commands.Compute.Models; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Compute.Models; using Microsoft.Azure.Management.Storage; using Microsoft.Azure.Management.Storage.Models; using System; using System.Globalization; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Compute { diff --git a/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Operation/GetAzureVMBootDiagnosticsDataCommand.cs b/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Operation/GetAzureVMBootDiagnosticsDataCommand.cs index 8f51b32a3688..2d6d9d0f5f6a 100644 --- a/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Operation/GetAzureVMBootDiagnosticsDataCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Operation/GetAzureVMBootDiagnosticsDataCommand.cs @@ -14,8 +14,8 @@ using Microsoft.Azure.Commands.Compute.Common; using Microsoft.Azure.Commands.Compute.Models; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Compute; using Microsoft.Azure.Management.Storage; using Microsoft.WindowsAzure.Commands.Sync.Download; @@ -26,6 +26,8 @@ using System.IO; using System.Management.Automation; using System.Text; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Compute { diff --git a/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Operation/NewAzureVMCommand.cs b/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Operation/NewAzureVMCommand.cs index 3d09a10e7f8f..396bff402919 100644 --- a/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Operation/NewAzureVMCommand.cs +++ b/src/ResourceManager/Compute/Commands.Compute/VirtualMachine/Operation/NewAzureVMCommand.cs @@ -15,8 +15,8 @@ using AutoMapper; using Microsoft.Azure.Commands.Compute.Common; using Microsoft.Azure.Commands.Compute.Models; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Compute; using Microsoft.Azure.Management.Compute.Models; using Microsoft.Azure.Management.Storage; @@ -26,6 +26,8 @@ using System.Linq; using System.Management.Automation; using System.Reflection; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Compute { diff --git a/src/ResourceManager/Compute/Commands.Compute/packages.config b/src/ResourceManager/Compute/Commands.Compute/packages.config index 5314816bb7bb..17746671ca14 100644 --- a/src/ResourceManager/Compute/Commands.Compute/packages.config +++ b/src/ResourceManager/Compute/Commands.Compute/packages.config @@ -3,14 +3,14 @@ - + - - + + @@ -20,9 +20,9 @@ - - - + + + diff --git a/src/ResourceManager/Compute/Compute.sln b/src/ResourceManager/Compute/Compute.sln index 341f5f215f76..54a0bc59a45d 100644 --- a/src/ResourceManager/Compute/Compute.sln +++ b/src/ResourceManager/Compute/Compute.sln @@ -36,10 +36,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Storage", "..\..\C EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ServiceManagement.Common", "..\..\ServiceManagement\Common\Commands.ServiceManagement.Common\Commands.ServiceManagement.Common.csproj", "{CFF09E81-1E31-444E-B4D4-A21E946C29E2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{F7E358A9-7A65-47DE-8E3A-BAFD75C0E2E9}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -111,6 +108,10 @@ Global {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Debug|Any CPU.Build.0 = Debug|Any CPU {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Release|Any CPU.ActiveCfg = Release|Any CPU {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/DataFactories/.nuget/packages.config b/src/ResourceManager/DataFactories/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/DataFactories/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj index ca6592ba8c36..2c5d4f038560 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ ..\..\..\ true - 1513e0d4 + ad1fdc7a true @@ -48,10 +49,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -76,11 +73,11 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -105,12 +102,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -162,12 +159,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -287,6 +292,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Properties/AssemblyInfo.cs index 142d3339ac5b..8950fbf4b858 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/Properties/AssemblyInfo.cs @@ -34,3 +34,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs index 783c5e6b0e7c..62dcbe9c6eea 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System.Collections.Generic; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.DataFactories; diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config index 7d9a7e2f8e30..8d6ab31ddb44 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config +++ b/src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config @@ -2,15 +2,14 @@ - - - + + @@ -20,15 +19,19 @@ - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Commands.DataFactories.csproj b/src/ResourceManager/DataFactories/Commands.DataFactories/Commands.DataFactories.csproj index 848b1d1945db..bbcf54ceb05c 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Commands.DataFactories.csproj +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Commands.DataFactories.csproj @@ -54,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -73,6 +69,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -97,12 +94,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -263,6 +260,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/DataFactoryCommonUtilities.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/DataFactoryCommonUtilities.cs index 57ca8b958e6f..c6cb8a84c724 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/DataFactoryCommonUtilities.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/DataFactoryCommonUtilities.cs @@ -17,11 +17,9 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.DataFactories.Properties; -using Microsoft.WindowsAzure; -using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json; -using Microsoft.Azure.Common.Authentication; namespace Microsoft.Azure.Commands.DataFactories { diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.cs b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.cs index a178e687ac83..4a534bc290e0 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.cs +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/Models/DataFactoryClient.cs @@ -14,14 +14,8 @@ using System.IO; using Microsoft.Azure.Management.DataFactories; -using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Commands.DataFactories.Properties; -using System; -using Microsoft.WindowsAzure.Storage.Blob; -using Microsoft.WindowsAzure.Storage; -using System.Net; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.DataFactories { diff --git a/src/ResourceManager/DataFactories/Commands.DataFactories/packages.config b/src/ResourceManager/DataFactories/Commands.DataFactories/packages.config index 2c1116ac0c55..bd7faa8b4226 100644 --- a/src/ResourceManager/DataFactories/Commands.DataFactories/packages.config +++ b/src/ResourceManager/DataFactories/Commands.DataFactories/packages.config @@ -2,7 +2,6 @@ - @@ -16,8 +15,8 @@ - - + + diff --git a/src/ResourceManager/DataFactories/DataFactories.sln b/src/ResourceManager/DataFactories/DataFactories.sln index 45032305aacf..c11eef6254d6 100644 --- a/src/ResourceManager/DataFactories/DataFactories.sln +++ b/src/ResourceManager/DataFactories/DataFactories.sln @@ -24,10 +24,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources.Rest", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{7865F5ED-E0F3-45CD-87BA-214FE8A27061}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -75,6 +72,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/DataLakeAnalytics/.nuget/packages.config b/src/ResourceManager/DataLakeAnalytics/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/DataLakeAnalytics/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/Commands.DataLakeAnalytics.Test.csproj b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/Commands.DataLakeAnalytics.Test.csproj index 76b8e02144ea..c5b0048f4adb 100644 --- a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/Commands.DataLakeAnalytics.Test.csproj +++ b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/Commands.DataLakeAnalytics.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\..\..\ true - d191643d + 8f936962 true @@ -50,10 +51,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -83,11 +80,11 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -97,12 +94,13 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True False @@ -149,13 +147,21 @@ - - False - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True - - False - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True @@ -164,6 +170,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3436a126-edc9-4060-8952-9a1be34cdd95} Commands.ScenarioTests.ResourceManager.Common diff --git a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/Properties/AssemblyInfo.cs index 34a508723774..db286067c633 100644 --- a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -33,3 +34,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/ScenarioTests/AdlaTestsBase.cs b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/ScenarioTests/AdlaTestsBase.cs index a3ab9325b50b..7cc6b36077ed 100644 --- a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/ScenarioTests/AdlaTestsBase.cs +++ b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/ScenarioTests/AdlaTestsBase.cs @@ -12,13 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Management.DataLake.AnalyticsCatalog; using Microsoft.Azure.Management.DataLake.AnalyticsJob; namespace Microsoft.Azure.Commands.DataLakeAnalytics.Test.ScenarioTests { using Microsoft.Azure; - using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Management.DataLake.Store; using Microsoft.Azure.Management.DataLake.Store.Models; using Microsoft.Azure.Management.Storage; diff --git a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/packages.config b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/packages.config index cefee762f9f0..56b2af916f73 100644 --- a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/packages.config +++ b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics.Test/packages.config @@ -2,7 +2,6 @@ - @@ -10,19 +9,23 @@ - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/Commands.DataLakeAnalytics.csproj b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/Commands.DataLakeAnalytics.csproj index 18490685856f..cbaca38ab43e 100644 --- a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/Commands.DataLakeAnalytics.csproj +++ b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/Commands.DataLakeAnalytics.csproj @@ -42,10 +42,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -73,12 +69,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -174,6 +170,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/Models/DataLakeAnalyticsClient.cs b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/Models/DataLakeAnalyticsClient.cs index 0e6403fff37a..dd7a6b59b1b6 100644 --- a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/Models/DataLakeAnalyticsClient.cs +++ b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/Models/DataLakeAnalyticsClient.cs @@ -18,10 +18,10 @@ using System.Linq; using System.Net; using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; using Microsoft.Azure.Commands.Tags.Model; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication.Properties; using Microsoft.Azure.Management.DataLake.Analytics; using Microsoft.Azure.Management.DataLake.Analytics.Models; using Microsoft.Azure.Management.DataLake.AnalyticsCatalog; diff --git a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/packages.config b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/packages.config index dcdcf6e1fa1d..5628b8ae6f9a 100644 --- a/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/packages.config +++ b/src/ResourceManager/DataLakeAnalytics/Commands.DataLakeAnalytics/packages.config @@ -2,7 +2,6 @@ - @@ -13,8 +12,8 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/DataLakeAnalytics/DataLakeAnalytics.sln b/src/ResourceManager/DataLakeAnalytics/DataLakeAnalytics.sln index d286e659e490..2bd21448111a 100644 --- a/src/ResourceManager/DataLakeAnalytics/DataLakeAnalytics.sln +++ b/src/ResourceManager/DataLakeAnalytics/DataLakeAnalytics.sln @@ -16,13 +16,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.Reso EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{DB56CF72-D058-4B6F-8BD7-C482D06815D1}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -57,6 +54,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/DataLakeStore/.nuget/packages.config b/src/ResourceManager/DataLakeStore/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/DataLakeStore/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/Commands.DataLakeStore.Test.csproj b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/Commands.DataLakeStore.Test.csproj index 32c8970281f4..d51adf102123 100644 --- a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/Commands.DataLakeStore.Test.csproj +++ b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/Commands.DataLakeStore.Test.csproj @@ -1,7 +1,7 @@  - - + + Debug @@ -16,7 +16,7 @@ ..\..\..\ true - d191643d + d05669d7 true @@ -51,10 +51,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -76,11 +72,11 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -90,12 +86,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -143,13 +139,21 @@ - - False - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True - - False - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True @@ -158,6 +162,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3436a126-edc9-4060-8952-9a1be34cdd95} Commands.ScenarioTests.ResourceManager.Common diff --git a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/Properties/AssemblyInfo.cs index e96db409f76e..31c9bbcbf570 100644 --- a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -33,3 +34,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/ScenarioTests/AdlsTestsBase.cs b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/ScenarioTests/AdlsTestsBase.cs index f1a2a8f48452..d4002dad1ba5 100644 --- a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/ScenarioTests/AdlsTestsBase.cs +++ b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/ScenarioTests/AdlsTestsBase.cs @@ -13,16 +13,16 @@ // ---------------------------------------------------------------------------------- using System.Reflection; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Management.DataLake.StoreFileSystem; namespace Microsoft.Azure.Commands.DataLakeStore.Test.ScenarioTests { using System; using Microsoft.WindowsAzure.Commands.ScenarioTest; - using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Test; using Microsoft.Azure.Management.DataLake.Store; - using Microsoft.Azure.Common.Authentication; + using ServiceManagemenet.Common; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Resources.Models; using System.Net; diff --git a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/packages.config b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/packages.config index 3125ba9f5e7c..775454178f45 100644 --- a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/packages.config +++ b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore.Test/packages.config @@ -2,25 +2,28 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Commands.DataLakeStore.csproj b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Commands.DataLakeStore.csproj index de0fc1011a16..eb2469f28e4e 100644 --- a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Commands.DataLakeStore.csproj +++ b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Commands.DataLakeStore.csproj @@ -42,10 +42,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -73,13 +69,13 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True False @@ -189,6 +185,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Models/DataLakeStoreClient.cs b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Models/DataLakeStoreClient.cs index e7a641047599..7e163ce993d7 100644 --- a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Models/DataLakeStoreClient.cs +++ b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Models/DataLakeStoreClient.cs @@ -17,9 +17,9 @@ using System.Collections.Generic; using System.Net; using Hyak.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication.Properties; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; using Microsoft.Azure.Management.DataLake.Store; using Microsoft.Azure.Management.DataLake.Store.Models; using Microsoft.Azure.Commands.Tags.Model; diff --git a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Models/DataLakeStoreFileSystemClient.cs b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Models/DataLakeStoreFileSystemClient.cs index b3b8976cfb5f..b7d617360b3c 100644 --- a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Models/DataLakeStoreFileSystemClient.cs +++ b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/Models/DataLakeStoreFileSystemClient.cs @@ -23,9 +23,9 @@ using System.Threading; using System.Threading.Tasks; using Hyak.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication.Properties; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; using Microsoft.Azure.Management.DataLake.StoreFileSystem; using Microsoft.Azure.Management.DataLake.StoreFileSystem.Models; using Microsoft.Azure.Management.DataLake.StoreUploader; diff --git a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/packages.config b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/packages.config index a378fd4fbcb8..de19739a30eb 100644 --- a/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/packages.config +++ b/src/ResourceManager/DataLakeStore/Commands.DataLakeStore/packages.config @@ -2,7 +2,6 @@ - @@ -13,8 +12,8 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/DataLakeStore/DataLakeStore.sln b/src/ResourceManager/DataLakeStore/DataLakeStore.sln index ebbe0f1cca12..5d24df3d20b3 100644 --- a/src/ResourceManager/DataLakeStore/DataLakeStore.sln +++ b/src/ResourceManager/DataLakeStore/DataLakeStore.sln @@ -16,13 +16,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.Reso EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{DB56CF72-D058-4B6F-8BD7-C482D06815D1}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -57,6 +54,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Dns/.nuget/packages.config b/src/ResourceManager/Dns/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Dns/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Dns/Commands.Dns.Test/Commands.Dns.Test.csproj b/src/ResourceManager/Dns/Commands.Dns.Test/Commands.Dns.Test.csproj index 55990489bbd8..592524a7a219 100644 --- a/src/ResourceManager/Dns/Commands.Dns.Test/Commands.Dns.Test.csproj +++ b/src/ResourceManager/Dns/Commands.Dns.Test/Commands.Dns.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ ..\..\..\ true /assemblyCompareMode:StrongNameIgnoringVersion - a18e2cb8 + f9d44ab2 true @@ -51,10 +52,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Gallery.2.6.2-preview\lib\net40\Microsoft.Azure.Gallery.dll @@ -72,21 +69,21 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -131,12 +128,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -154,6 +159,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Dns/Commands.Dns.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Dns/Commands.Dns.Test/Properties/AssemblyInfo.cs index b3c7d1989158..d57e3dbfb323 100644 --- a/src/ResourceManager/Dns/Commands.Dns.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Dns/Commands.Dns.Test/Properties/AssemblyInfo.cs @@ -35,3 +35,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Dns/Commands.Dns.Test/ScenarioTests/DnsTestsBase.cs b/src/ResourceManager/Dns/Commands.Dns.Test/ScenarioTests/DnsTestsBase.cs index 5d18408c3a28..66975b8dad3f 100644 --- a/src/ResourceManager/Dns/Commands.Dns.Test/ScenarioTests/DnsTestsBase.cs +++ b/src/ResourceManager/Dns/Commands.Dns.Test/ScenarioTests/DnsTestsBase.cs @@ -13,13 +13,14 @@ // ---------------------------------------------------------------------------------- using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test.HttpRecorder; namespace Microsoft.Azure.Commands.ScenarioTest.DnsTests { using System; using System.Linq; - using Microsoft.Azure.Common.Authentication; + using ServiceManagemenet.Common; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; diff --git a/src/ResourceManager/Dns/Commands.Dns.Test/packages.config b/src/ResourceManager/Dns/Commands.Dns.Test/packages.config index 92d3482c8177..3a735387b737 100644 --- a/src/ResourceManager/Dns/Commands.Dns.Test/packages.config +++ b/src/ResourceManager/Dns/Commands.Dns.Test/packages.config @@ -2,22 +2,25 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Dns/Commands.Dns/Commands.Dns.csproj b/src/ResourceManager/Dns/Commands.Dns/Commands.Dns.csproj index 2a6225b5e2bf..2d8e724c8670 100644 --- a/src/ResourceManager/Dns/Commands.Dns/Commands.Dns.csproj +++ b/src/ResourceManager/Dns/Commands.Dns/Commands.Dns.csproj @@ -95,10 +95,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Management.Authorization.2.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll True @@ -113,6 +109,7 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -130,12 +127,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -171,6 +168,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Dns/Commands.Dns/Models/DnsClient.cs b/src/ResourceManager/Dns/Commands.Dns/Models/DnsClient.cs index 90773f8a3c2c..d223ce89f512 100644 --- a/src/ResourceManager/Dns/Commands.Dns/Models/DnsClient.cs +++ b/src/ResourceManager/Dns/Commands.Dns/Models/DnsClient.cs @@ -16,14 +16,10 @@ using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Text; - -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.Dns; using Microsoft.Azure.Management.Dns.Models; -using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.WindowsAzure; using Microsoft.Azure.Commands.Tags.Model; namespace Microsoft.Azure.Commands.Dns.Models diff --git a/src/ResourceManager/Dns/Commands.Dns/packages.config b/src/ResourceManager/Dns/Commands.Dns/packages.config index 50800a64b0e9..0eef3ed320b6 100644 --- a/src/ResourceManager/Dns/Commands.Dns/packages.config +++ b/src/ResourceManager/Dns/Commands.Dns/packages.config @@ -2,7 +2,6 @@ - @@ -15,8 +14,8 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/Dns/Dns.sln b/src/ResourceManager/Dns/Dns.sln index 021e6f6e2377..9c1ca6dc88af 100644 --- a/src/ResourceManager/Dns/Dns.sln +++ b/src/ResourceManager/Dns/Dns.sln @@ -22,10 +22,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Dns.Test", "Comman EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{16AF0FE3-9E19-4993-AB3C-6B5AFFE1B39E}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,6 +66,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/HDInsight/.nuget/packages.config b/src/ResourceManager/HDInsight/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/HDInsight/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj b/src/ResourceManager/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj index f6442251cfca..8d1d321b696e 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj +++ b/src/ResourceManager/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj @@ -1,5 +1,7 @@  + + Debug @@ -13,6 +15,7 @@ 512 ..\..\..\ true + a421d612 true @@ -38,10 +41,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -65,12 +64,12 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll True - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -93,12 +92,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -145,11 +144,21 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True @@ -171,6 +180,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/HDInsight/Commands.HDInsight.Test/Properties/AssemblyInfo.cs index da6e6fb9c7e5..692ff25cdd97 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/HDInsight/Commands.HDInsight.Test/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -47,3 +48,4 @@ [assembly: AssemblyVersion("1.0.5")] [assembly: AssemblyFileVersion("1.0.5")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight.Test/ScenarioTests/HDInsightScenarioTestsBase.cs b/src/ResourceManager/HDInsight/Commands.HDInsight.Test/ScenarioTests/HDInsightScenarioTestsBase.cs index 70fa46cafcb8..82bd9fd427f2 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight.Test/ScenarioTests/HDInsightScenarioTestsBase.cs +++ b/src/ResourceManager/HDInsight/Commands.HDInsight.Test/ScenarioTests/HDInsightScenarioTestsBase.cs @@ -12,7 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Management.HDInsight; using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.ScenarioTest; diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight.Test/packages.config b/src/ResourceManager/HDInsight/Commands.HDInsight.Test/packages.config index 5508f274b5d8..2d5222cc3cf6 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight.Test/packages.config +++ b/src/ResourceManager/HDInsight/Commands.HDInsight.Test/packages.config @@ -2,16 +2,16 @@ - + - - + + @@ -20,15 +20,18 @@ - - + + - - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight/Commands.HDInsight.csproj b/src/ResourceManager/HDInsight/Commands.HDInsight/Commands.HDInsight.csproj index a819f7c80724..5e03bebf5542 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight/Commands.HDInsight.csproj +++ b/src/ResourceManager/HDInsight/Commands.HDInsight/Commands.HDInsight.csproj @@ -51,7 +51,7 @@ - + @@ -107,10 +107,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -129,6 +125,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -147,6 +144,14 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -168,14 +173,6 @@ False ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - @@ -186,6 +183,7 @@ False ..\..\..\packages\System.Spatial.5.6.4\lib\net40\System.Spatial.dll + @@ -193,6 +191,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight/Constants.cs b/src/ResourceManager/HDInsight/Commands.HDInsight/Constants.cs index 9e05f89744c1..9177822bc632 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight/Constants.cs +++ b/src/ResourceManager/HDInsight/Commands.HDInsight/Constants.cs @@ -31,7 +31,7 @@ public static class CommandNames public const string AzureHDInsightJobOutput = "AzureRmHDInsightJobOutput"; public const string AzureHDInsightDefaultStorage = "AzureRmHDInsightDefaultStorage"; public const string AzureHDInsightHiveJob = "AzureRmHDInsightHiveJob"; - public const string AzureHDInsightClusterIdentity = "AzureHDInsightClusterIdentity"; + public const string AzureHDInsightClusterIdentity = "AzureRmHDInsightClusterIdentity"; public const string Hive = "Hive"; } diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/NewAzureHDInsightClusterIdentity.cs b/src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/AddAzureHDInsightClusterIdentity.cs similarity index 96% rename from src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/NewAzureHDInsightClusterIdentity.cs rename to src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/AddAzureHDInsightClusterIdentity.cs index 2982c23587e1..0ee2be3c5a50 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/NewAzureHDInsightClusterIdentity.cs +++ b/src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/AddAzureHDInsightClusterIdentity.cs @@ -20,10 +20,10 @@ namespace Microsoft.Azure.Commands.HDInsight.ManagementCommands { [Cmdlet( - VerbsCommon.New, + VerbsCommon.Add, Constants.CommandNames.AzureHDInsightClusterIdentity), OutputType(typeof(AzureHDInsightConfig))] - public class NewAzureHDInsightClusterIdentity : HDInsightCmdletBase + public class AddAzureHDInsightClusterIdentity : HDInsightCmdletBase { #region Input Parameter Definitions diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/NewAzureHDInsightClusterCommand.cs b/src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/NewAzureHDInsightClusterCommand.cs index f12c1bb06170..ee72c7318697 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/NewAzureHDInsightClusterCommand.cs +++ b/src/ResourceManager/HDInsight/Commands.HDInsight/ManagementCommands/NewAzureHDInsightClusterCommand.cs @@ -23,11 +23,13 @@ using Microsoft.Azure.Commands.HDInsight.Models.Management; using Microsoft.Azure.Management.HDInsight.Models; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Graph.RBAC; using Microsoft.Azure.Graph.RBAC.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using System.Diagnostics; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.HDInsight { diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight/Microsoft.Azure.Commands.HDInsight.dll-help.xml b/src/ResourceManager/HDInsight/Commands.HDInsight/Microsoft.Azure.Commands.HDInsight.dll-help.xml index 2c6b77348ad3..db243711ab60 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight/Microsoft.Azure.Commands.HDInsight.dll-help.xml +++ b/src/ResourceManager/HDInsight/Commands.HDInsight/Microsoft.Azure.Commands.HDInsight.dll-help.xml @@ -1,5 +1,193 @@  + + + Add-AzureRmHDInsightClusterIdentity + + Adds a cluster identity to the Microsoft Azure HDInsight cluster configuration. + + + + + Add + AzureHDInsightClusterIdentity + + + + Adds a cluster identity to the Microsoft Azure HDInsight cluster configuration. + + + + Add-AzureRmHDInsightClusterIdentity + + Config + + The HDInsight cluster configuration to use when creating the new cluster. + + AzureHDInsightConfig + + + ObjectId + + The Service Principal Object Id for accessing Azure Data Lake. + + Guid + + + CertificateFilePath + + The Service Principal certificate for accessing Azure Data Lake. + + String + + + CertificatePassword + + The Service Principal certificate password for accessing Azure Data Lake. + + String + + + AadTenantId + + The Service Principal AAD Tenant Id for accessing Azure Data Lake. + + Guid + + + Profile + + + + AzureProfile + + + + + + Config + + The HDInsight cluster configuration to use when creating the new cluster. + + AzureHDInsightConfig + + AzureHDInsightConfig + + + + + + + ObjectId + + The Service Principal Object Id for accessing Azure Data Lake. + + Guid + + Guid + + + + + + + CertificateFilePath + + The Service Principal certificate for accessing Azure Data Lake. + + String + + String + + + + + + + CertificatePassword + + The Service Principal certificate password for accessing Azure Data Lake. + + String + + String + + + + + + + AadTenantId + + The Service Principal AAD Tenant Id for accessing Azure Data Lake. + + Guid + + Guid + + + + + + + Profile + + + + AzureProfile + + AzureProfile + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Keywords: azure, azurerm, arm, resource, management, manager, hadoop, hdinsight, hd, insight + + + + + + + diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight/Models/Job/AzureHdInsightJobManagementClient.cs b/src/ResourceManager/HDInsight/Commands.HDInsight/Models/Job/AzureHdInsightJobManagementClient.cs index 2cce7218df72..af2c5432f4d7 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight/Models/Job/AzureHdInsightJobManagementClient.cs +++ b/src/ResourceManager/HDInsight/Commands.HDInsight/Models/Job/AzureHdInsightJobManagementClient.cs @@ -12,13 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Threading.Tasks; using Hyak.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Management.HDInsight.Job; using Microsoft.Azure.Management.HDInsight.Job.Models; diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight/Models/Management/AzureHdInsightManagementClient.cs b/src/ResourceManager/HDInsight/Commands.HDInsight/Models/Management/AzureHdInsightManagementClient.cs index aaa75143cff8..224d693e697f 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight/Models/Management/AzureHdInsightManagementClient.cs +++ b/src/ResourceManager/HDInsight/Commands.HDInsight/Models/Management/AzureHdInsightManagementClient.cs @@ -13,8 +13,8 @@ // ---------------------------------------------------------------------------------- using System.Collections.Generic; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.HDInsight; using Microsoft.Azure.Management.HDInsight.Models; diff --git a/src/ResourceManager/HDInsight/Commands.HDInsight/packages.config b/src/ResourceManager/HDInsight/Commands.HDInsight/packages.config index 1b323da2b19f..a3d69513e058 100644 --- a/src/ResourceManager/HDInsight/Commands.HDInsight/packages.config +++ b/src/ResourceManager/HDInsight/Commands.HDInsight/packages.config @@ -2,13 +2,12 @@ - + - @@ -17,10 +16,9 @@ - - + + - \ No newline at end of file diff --git a/src/ResourceManager/HDInsight/HDInsight.sln b/src/ResourceManager/HDInsight/HDInsight.sln index b014fe0664c9..b1ba3c8306ec 100644 --- a/src/ResourceManager/HDInsight/HDInsight.sln +++ b/src/ResourceManager/HDInsight/HDInsight.sln @@ -22,6 +22,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Co EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -64,6 +66,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Insights/.nuget/packages.config b/src/ResourceManager/Insights/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Insights/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Insights/Commands.Insights.Test/Commands.Insights.Test.csproj b/src/ResourceManager/Insights/Commands.Insights.Test/Commands.Insights.Test.csproj index 01f1aa60c727..ae5b71fe135a 100644 --- a/src/ResourceManager/Insights/Commands.Insights.Test/Commands.Insights.Test.csproj +++ b/src/ResourceManager/Insights/Commands.Insights.Test/Commands.Insights.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ ..\..\..\ true {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - d7bcc31d + 7801692f true @@ -50,10 +51,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -66,20 +63,13 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -92,6 +82,14 @@ False ..\..\..\packages\Microsoft.Data.Services.Client.5.6.4\lib\net40\Microsoft.Data.Services.Client.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -132,15 +130,23 @@ + ..\..\..\packages\System.Spatial.5.6.4\lib\net40\System.Spatial.dll - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -173,6 +179,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common @@ -225,7 +235,7 @@ Always - + Always diff --git a/src/ResourceManager/Insights/Commands.Insights.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Insights/Commands.Insights.Test/Properties/AssemblyInfo.cs index 18172f3dab84..6364b6b7518a 100644 --- a/src/ResourceManager/Insights/Commands.Insights.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Insights/Commands.Insights.Test/Properties/AssemblyInfo.cs @@ -34,3 +34,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Insights/Commands.Insights.Test/ScenarioTests/TestsController.cs b/src/ResourceManager/Insights/Commands.Insights.Test/ScenarioTests/TestsController.cs index 5f5084c78205..a83b454372a6 100644 --- a/src/ResourceManager/Insights/Commands.Insights.Test/ScenarioTests/TestsController.cs +++ b/src/ResourceManager/Insights/Commands.Insights.Test/ScenarioTests/TestsController.cs @@ -12,13 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Insights; using Microsoft.Azure.Management.Insights; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.Azure.Test; using System; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; namespace Microsoft.Azure.Commands.Insights.Test.ScenarioTests diff --git a/src/ResourceManager/Insights/Commands.Insights.Test/packages.config b/src/ResourceManager/Insights/Commands.Insights.Test/packages.config index 4c3980df126d..dbcbce5274bc 100644 --- a/src/ResourceManager/Insights/Commands.Insights.Test/packages.config +++ b/src/ResourceManager/Insights/Commands.Insights.Test/packages.config @@ -2,12 +2,12 @@ - + - - + + @@ -16,15 +16,18 @@ - - + + - - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Insights/Commands.Insights/Commands.Insights.csproj b/src/ResourceManager/Insights/Commands.Insights/Commands.Insights.csproj index 33a855c32677..175035bd8350 100644 --- a/src/ResourceManager/Insights/Commands.Insights/Commands.Insights.csproj +++ b/src/ResourceManager/Insights/Commands.Insights/Commands.Insights.csproj @@ -49,10 +49,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -63,6 +59,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -83,12 +80,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -109,6 +106,7 @@ + False ..\..\..\packages\System.Spatial.5.6.4\lib\net40\System.Spatial.dll @@ -129,7 +127,7 @@ - + @@ -144,7 +142,7 @@ - + @@ -199,7 +197,7 @@ Designer Always - + Designer @@ -226,6 +224,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Insights/Commands.Insights/InsightsClientCmdletBase.cs b/src/ResourceManager/Insights/Commands.Insights/InsightsClientCmdletBase.cs index 3ddb95326a80..89e68ec505f0 100644 --- a/src/ResourceManager/Insights/Commands.Insights/InsightsClientCmdletBase.cs +++ b/src/ResourceManager/Insights/Commands.Insights/InsightsClientCmdletBase.cs @@ -13,10 +13,9 @@ // ---------------------------------------------------------------------------------- using System; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Insights; -using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.Azure.Commands.Insights { diff --git a/src/ResourceManager/Insights/Commands.Insights/ManagementCmdletBase.cs b/src/ResourceManager/Insights/Commands.Insights/ManagementCmdletBase.cs index 14ec108f13bc..b41097f6058b 100644 --- a/src/ResourceManager/Insights/Commands.Insights/ManagementCmdletBase.cs +++ b/src/ResourceManager/Insights/Commands.Insights/ManagementCmdletBase.cs @@ -13,8 +13,8 @@ // ---------------------------------------------------------------------------------- using System; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.Insights; namespace Microsoft.Azure.Commands.Insights diff --git a/src/ResourceManager/Insights/Commands.Insights/packages.config b/src/ResourceManager/Insights/Commands.Insights/packages.config index e25264df01b4..9c7cd7c9951f 100644 --- a/src/ResourceManager/Insights/Commands.Insights/packages.config +++ b/src/ResourceManager/Insights/Commands.Insights/packages.config @@ -2,9 +2,9 @@ - + @@ -14,10 +14,9 @@ - - + + - diff --git a/src/ResourceManager/Insights/Insights.sln b/src/ResourceManager/Insights/Insights.sln index 0858da04bbe4..806b57527702 100644 --- a/src/ResourceManager/Insights/Insights.sln +++ b/src/ResourceManager/Insights/Insights.sln @@ -16,10 +16,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{30B52263-1C72-4358-A67C-586AC5CD568F}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -51,6 +48,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Intune/.nuget/packages.config b/src/ResourceManager/Intune/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Intune/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Intune/Commands.Intune.Test/Commands.Intune.Test.csproj b/src/ResourceManager/Intune/Commands.Intune.Test/Commands.Intune.Test.csproj index 8c0ebaa951d9..4a6ad91f2313 100644 --- a/src/ResourceManager/Intune/Commands.Intune.Test/Commands.Intune.Test.csproj +++ b/src/ResourceManager/Intune/Commands.Intune.Test/Commands.Intune.Test.csproj @@ -1,5 +1,7 @@  + + Debug @@ -14,7 +16,7 @@ ..\ true - 5154d859 + 9c67e65a true @@ -46,10 +48,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -77,9 +75,9 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll True - + False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll True @@ -132,8 +130,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True diff --git a/src/ResourceManager/Intune/Commands.Intune.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Intune/Commands.Intune.Test/Properties/AssemblyInfo.cs index e784fac57392..e8d0dba81db0 100644 --- a/src/ResourceManager/Intune/Commands.Intune.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Intune/Commands.Intune.Test/Properties/AssemblyInfo.cs @@ -35,3 +35,4 @@ [assembly: AssemblyVersion("1.0.3")] [assembly: AssemblyFileVersion("1.0.3")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Intune/Commands.Intune.Test/ScenarioTests/IntuneTestController.cs b/src/ResourceManager/Intune/Commands.Intune.Test/ScenarioTests/IntuneTestController.cs index f075c9ae2626..3a2f8726600e 100644 --- a/src/ResourceManager/Intune/Commands.Intune.Test/ScenarioTests/IntuneTestController.cs +++ b/src/ResourceManager/Intune/Commands.Intune.Test/ScenarioTests/IntuneTestController.cs @@ -15,10 +15,12 @@ namespace Microsoft.Azure.Commands.Intune.Test.ScenarioTests { using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Management.Intune; + using Microsoft.Azure.Test.HttpRecorder; using Microsoft.Rest.ClientRuntime.Azure.TestFramework; using Microsoft.WindowsAzure.Commands.ScenarioTest; using System; using System.Collections.Generic; + using System.IO; using System.Linq; using TestEnvironmentFactory = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestEnvironmentFactory; using TestUtilities = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities; @@ -72,6 +74,7 @@ private void RunPsTestWorkflow( string callingClassType, string mockName) { + HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); using (MockContext context = MockContext.Start(callingClassType, mockName)) { SetupManagementClients(context); diff --git a/src/ResourceManager/Intune/Commands.Intune.Test/packages.config b/src/ResourceManager/Intune/Commands.Intune.Test/packages.config index ad36b4f5b858..acb11aef24de 100644 --- a/src/ResourceManager/Intune/Commands.Intune.Test/packages.config +++ b/src/ResourceManager/Intune/Commands.Intune.Test/packages.config @@ -2,10 +2,9 @@ - - + @@ -19,5 +18,11 @@ - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Intune/Commands.Intune/Commands.Intune.csproj b/src/ResourceManager/Intune/Commands.Intune/Commands.Intune.csproj index 1255f4f46bf6..1315f3a149f5 100644 --- a/src/ResourceManager/Intune/Commands.Intune/Commands.Intune.csproj +++ b/src/ResourceManager/Intune/Commands.Intune/Commands.Intune.csproj @@ -48,10 +48,6 @@ ..\..\..\packages\Hyak.Common.1.0.3\lib\net45\Hyak.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Management.Intune.0.1.3-preview\lib\net45\Microsoft.Azure.Management.Intune.dll @@ -160,6 +156,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Intune/Commands.Intune/packages.config b/src/ResourceManager/Intune/Commands.Intune/packages.config index a1c9147bbe4f..a79d06768aec 100644 --- a/src/ResourceManager/Intune/Commands.Intune/packages.config +++ b/src/ResourceManager/Intune/Commands.Intune/packages.config @@ -2,7 +2,6 @@ - diff --git a/src/ResourceManager/Intune/Intune.sln b/src/ResourceManager/Intune/Intune.sln index 309fb210d976..20dd96b26e86 100644 --- a/src/ResourceManager/Intune/Intune.sln +++ b/src/ResourceManager/Intune/Intune.sln @@ -9,11 +9,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ResourceManager.Co EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{AB94E3E7-EBFA-43A2-889E-890D268A609C}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Intune.Test", "Commands.Intune.Test\Commands.Intune.Test.csproj", "{CA5F571B-550B-4BE3-9BA3-06442DF52768}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.ResourceManager.Common", "..\Common\Commands.ScenarioTests.ResourceManager.Common\Commands.ScenarioTests.ResourceManager.Common.csproj", "{3436A126-EDC9-4060-8952-9A1BE34CDD95}" diff --git a/src/ResourceManager/KeyVault/.nuget/packages.config b/src/ResourceManager/KeyVault/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/KeyVault/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj index 330a8bab674c..6dc6ca8a9828 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Commands.KeyVault.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ ..\..\ true {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 8a60455a + 653414c6 true @@ -56,10 +57,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Gallery.2.6.2-preview\lib\net40\Microsoft.Azure.Gallery.dll @@ -87,12 +84,13 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True + False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -101,12 +99,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -144,12 +142,20 @@ ..\..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -295,6 +301,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Properties/AssemblyInfo.cs index 86090e2a651d..8d9d8cabfae9 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Properties/AssemblyInfo.cs @@ -48,4 +48,5 @@ // by using the '*' as shown below: [assembly: AssemblyVersion( "1.0.0.0" )] -[assembly: AssemblyFileVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultEnvSetupHelper.cs b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultEnvSetupHelper.cs index 3c1b6f05f3c2..88cb2d815c20 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultEnvSetupHelper.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultEnvSetupHelper.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Subscriptions; @@ -25,8 +25,10 @@ using Microsoft.Azure.Gallery; using Microsoft.Azure.Graph.RBAC; using Microsoft.Azure.Management.KeyVault; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.WindowsAzure.Commands.Common; diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementController.cs b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementController.cs index 1a261b486462..3f3b1f63b943 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementController.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementController.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Subscriptions; @@ -21,11 +21,13 @@ using Microsoft.Azure.Test; using System; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Graph.RBAC; using Microsoft.Azure.Management.KeyVault; using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.WindowsAzure.Commands.Common; +using System.IO; namespace Microsoft.Azure.Commands.KeyVault.Test { @@ -88,6 +90,7 @@ public void RunPsTestWorkflow( string mockName) { HttpMockServer.Matcher = new PermissiveRecordMatcher(); + HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); using (UndoContext context = UndoContext.Current) { context.Start(callingClassType, mockName); diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementTests.cs b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementTests.cs index da7ec684aad3..4352fe973a85 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementTests.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/ScenarioTests/KeyVaultManagementTests.cs @@ -24,12 +24,14 @@ namespace Microsoft.Azure.Commands.KeyVault.Test.ScenarioTests { - public class KeyVaultManagementTests : IUseFixture + public class KeyVaultManagementTests : IClassFixture { private KeyVaultTestFixture _data; - public KeyVaultManagementTests() + public KeyVaultManagementTests(KeyVaultTestFixture fixture) { + this._data = fixture; + this._data.Initialize(TestUtilities.GetCallingClass()); } private void Initialize() @@ -739,12 +741,6 @@ private void DeleteAdServicePrincipal(KeyVaultManagementController controllerAdm } } #endregion - - public void SetFixture(KeyVaultTestFixture data) - { - this._data = data; - this._data.Initialize(TestUtilities.GetCallingClass()); - } } diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/PSHCommon/Common.ps1 b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/PSHCommon/Common.ps1 index f31d69da8ee8..785affd6c48a 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/PSHCommon/Common.ps1 +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/PSHCommon/Common.ps1 @@ -271,7 +271,7 @@ function Wait-Function do { - Start-Sleep -s 5 + Wait-Seconds 5 $current = [DateTime]::Now $diff = $current - $start $result = &$scriptBlock @@ -328,7 +328,7 @@ function Retry-Function $tries = 1; while(( $result -ne $true) -and ($tries -le $maxTries)) { - Start-Sleep -s $interval + Wait-Seconds $interval $result = Invoke-Command -ScriptBlock $scriptBlock -ArgumentList $argument; $tries++; } diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/VaultKeyTests.ps1 b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/VaultKeyTests.ps1 index 695a8d7a69f3..5543196f9a1f 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/VaultKeyTests.ps1 +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/Scripts/VaultKeyTests.ps1 @@ -594,8 +594,8 @@ function Test_GetAllKeys $run = 5 $i = 1 do { - Write-Host "Sleep 5 seconds before creating another $total keys" - Start-Sleep -s 5 + Write-Host "Sleep 5 seconds before creating another $total keys" + Wait-Seconds 5 BulkCreateSoftKeys $keyVault $keypartialname $total $i++ } while ($i -le $run) @@ -644,8 +644,8 @@ function Test_GetKeyVersions $run = 5 $i = 1 do { - Write-Host "Sleep 5 seconds before creating another $total keys" - Start-Sleep -s 5 + Write-Host "Sleep 5 seconds before creating another $total keys" + Wait-Seconds 5 BulkCreateSoftKeyVersions $keyVault $keyname $total $i++ } while ($i -le $run) diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/packages.config b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/packages.config index dc23c7d37be6..09235c1ec664 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault.Test/packages.config +++ b/src/ResourceManager/KeyVault/Commands.KeyVault.Test/packages.config @@ -2,25 +2,29 @@ - - - + + - - + + - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/Commands.KeyVault.csproj b/src/ResourceManager/KeyVault/Commands.KeyVault/Commands.KeyVault.csproj index 499d213e7ef9..9fb2f317ed78 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/Commands.KeyVault.csproj +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/Commands.KeyVault.csproj @@ -119,10 +119,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -145,6 +141,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -162,12 +159,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -206,6 +203,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/DataServiceCredential.cs b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/DataServiceCredential.cs index 213740acac54..d78756957fc8 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/DataServiceCredential.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/DataServiceCredential.cs @@ -13,11 +13,11 @@ // ---------------------------------------------------------------------------------- using KeyVaultProperties = Microsoft.Azure.Commands.KeyVault.Properties; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using System; using System.Threading.Tasks; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.KeyVault.Models { diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultCmdletBase.cs b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultCmdletBase.cs index 231b02bed809..2b84095cfb63 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultCmdletBase.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultCmdletBase.cs @@ -12,8 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; using System.Net.Http; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.ResourceManager.Common; namespace Microsoft.Azure.Commands.KeyVault.Models diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultDataServiceClient.cs b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultDataServiceClient.cs index 1f80bf34c286..b95f49079ac6 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultDataServiceClient.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultDataServiceClient.cs @@ -14,14 +14,14 @@ using Microsoft.Azure.KeyVault; using Microsoft.Azure.KeyVault.WebKey; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Security; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using KeyVaultProperties = Microsoft.Azure.Commands.KeyVault.Properties; namespace Microsoft.Azure.Commands.KeyVault.Models diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultManagementCmdletBase.cs b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultManagementCmdletBase.cs index c900e851d375..23ce21ced09a 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultManagementCmdletBase.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/KeyVaultManagementCmdletBase.cs @@ -18,15 +18,15 @@ using System.Linq; using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.Azure.Commands.Tags.Model; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Resources.Models; using PSKeyVaultModels = Microsoft.Azure.Commands.KeyVault.Models; using PSKeyVaultProperties = Microsoft.Azure.Commands.KeyVault.Properties; using PSResourceManagerModels = Microsoft.Azure.Commands.Resources.Models; using Microsoft.Azure.ActiveDirectory.GraphClient; -using Microsoft.Azure.Common.Authentication; using System.Threading.Tasks; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.KeyVault.Models; namespace Microsoft.Azure.Commands.KeyVault diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/VaultManagementClient.cs b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/VaultManagementClient.cs index e5dee885bdc4..cc48291fafbb 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/Models/VaultManagementClient.cs +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/Models/VaultManagementClient.cs @@ -18,11 +18,11 @@ using System.Net; using Hyak.Common; using Microsoft.Azure.Commands.Tags.Model; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.KeyVault; using PSKeyVaultProperties = Microsoft.Azure.Commands.KeyVault.Properties; using Microsoft.Azure.ActiveDirectory.GraphClient; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.KeyVault.Models { diff --git a/src/ResourceManager/KeyVault/Commands.KeyVault/packages.config b/src/ResourceManager/KeyVault/Commands.KeyVault/packages.config index 90d40181f61c..a5e7d48bf9cf 100644 --- a/src/ResourceManager/KeyVault/Commands.KeyVault/packages.config +++ b/src/ResourceManager/KeyVault/Commands.KeyVault/packages.config @@ -3,7 +3,6 @@ - @@ -18,8 +17,8 @@ - - + + diff --git a/src/ResourceManager/KeyVault/KeyVault.sln b/src/ResourceManager/KeyVault/KeyVault.sln index b6ddad7e6dc6..7878944b5d30 100644 --- a/src/ResourceManager/KeyVault/KeyVault.sln +++ b/src/ResourceManager/KeyVault/KeyVault.sln @@ -22,10 +22,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{33C9DADF-8EE1-4FCB-8E15-FEEB28330BC1}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,6 +66,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/LogicApp/.nuget/packages.config b/src/ResourceManager/LogicApp/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/LogicApp/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/Commands.LogicApp.Test.csproj b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/Commands.LogicApp.Test.csproj index a61865bcdd25..13b8adcc2638 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/Commands.LogicApp.Test.csproj +++ b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/Commands.LogicApp.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -19,7 +20,7 @@ False ..\ true - a5adf578 + 396f343f true @@ -49,10 +50,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -68,24 +65,26 @@ False - ..\..\..\packages\Microsoft.Azure.Management.Logic.0.1.0-preview\lib\net45\Microsoft.Azure.Management.Logic.dll + ..\..\..\packages\Microsoft.Azure.Management.Logic.0.2.0-preview\lib\dotnet\Microsoft.Azure.Management.Logic.dll + True - + False - ..\..\..\packages\Microsoft.Azure.Management.WebSites.0.16.7-preview\lib\net45\Microsoft.Azure.Management.WebSites.dll + ..\..\..\packages\Microsoft.Azure.Management.WebSites.1.1.0-preview\lib\net45\Microsoft.Azure.Management.WebSites.dll False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.6.0-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -94,16 +93,17 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.2.0\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True - + False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.1.0.20\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.1.2.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True False @@ -117,6 +117,7 @@ + @@ -125,12 +126,20 @@ False - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -234,6 +243,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/Properties/AssemblyInfo.cs index 4cb1d98dbf19..02a894c8ad27 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/Properties/AssemblyInfo.cs @@ -47,4 +47,5 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0")] -[assembly: AssemblyFileVersion("1.0.0")] \ No newline at end of file +[assembly: AssemblyFileVersion("1.0.0")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/ScenarioTests/WorkflowController.cs b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/ScenarioTests/WorkflowController.cs index a685cd20e4f2..daf87f6260fa 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/ScenarioTests/WorkflowController.cs +++ b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/ScenarioTests/WorkflowController.cs @@ -17,7 +17,7 @@ namespace Microsoft.Azure.Commands.LogicApp.Test.ScenarioTests using System; using System.Collections.Generic; using System.Linq; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; @@ -30,6 +30,7 @@ namespace Microsoft.Azure.Commands.LogicApp.Test.ScenarioTests using TestEnvironmentFactory = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestEnvironmentFactory; using TestUtilities = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities; using Microsoft.Azure.Management.WebSites; + using System.IO; /// /// Test controller for the logic app scenario testing @@ -135,6 +136,7 @@ public void RunPsTestWorkflow( d.Add("Microsoft.Authorization", AuthorizationApiVersion); HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(false, d); + HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); using (MockContext context = MockContext.Start(callingClassType, mockName)) { this.csmTestFactory = new LegacyTest.CSMTestEnvironmentFactory(); diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/ScenarioTests/WorkflowTests.ps1 b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/ScenarioTests/WorkflowTests.ps1 index 6de5830202b2..35ed8e6d6a1a 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/ScenarioTests/WorkflowTests.ps1 +++ b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/ScenarioTests/WorkflowTests.ps1 @@ -22,8 +22,8 @@ function Test-CreateAndRemoveLogicApp { $resourceGroup = TestSetup-CreateResourceGroup $workflowName = getAssetname - $definitionFilePath = "Resources\TestSimpleWorkflowDefinition.json" - $parameterFilePath = "Resources\TestSimpleWorkflowParameter.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowDefinition.json" + $parameterFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowParameter.json" #Create App Service Plan $planName = "StandardServicePlan" @@ -39,8 +39,8 @@ function Test-CreateAndRemoveLogicApp Remove-AzureRmLogicApp -ResourceGroupName $resourceGroup.ResourceGroupName -Name $WorkflowName -Force #Case2 : Using definition object and parameter file - $parameterFilePath = "Resources\TestSimpleWorkflowParameter.json" - $definition = [IO.File]::ReadAllText("Resources\TestSimpleWorkflowDefinition.json") + $parameterFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowParameter.json" + $definition = [IO.File]::ReadAllText("$TestOutputRoot\Resources\TestSimpleWorkflowDefinition.json") $workflowName = getAssetname $workflow = New-AzureRmLogicApp -ResourceGroupName $resourceGroup.ResourceGroupName -Name $workflowName -Definition $definition -ParameterFilePath $parameterFilePath -AppServicePlan $planName @@ -69,8 +69,8 @@ function Test-CreateLogicAppWithDuplicateName $resourceGroup = TestSetup-CreateResourceGroup $workflowName = getAssetname - $definitionFilePath = "Resources\TestSimpleWorkflowDefinition.json" - $parameterFilePath = "Resources\TestSimpleWorkflowParameter.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowDefinition.json" + $parameterFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowParameter.json" $resourceGroupName = $resourceGroup.ResourceGroupName #Create App Service Plan @@ -106,8 +106,8 @@ function Test-CreateLogicAppUsingInputfromWorkflowObject $planName = "StandardServicePlan" $Plan = TestSetup-CreateAppServicePlan $resourceGroup.ResourceGroupName $planName - $definitionFilePath = "Resources\TestSimpleWorkflowDefinition.json" - $parameterFilePath = "Resources\TestSimpleWorkflowParameter.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowDefinition.json" + $parameterFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowParameter.json" $workflow = New-AzureRmLogicApp -ResourceGroupName $resourceGroupName -Name $workflowName -AppServicePlan $planName -DefinitionFilePath $definitionFilePath -ParameterFilePath $parameterFilePath $workflow = New-AzureRmLogicApp -ResourceGroupName $resourceGroupName -Name $newWorkflowName -AppServicePlan $planName -Definition $workflow.Definition -Parameters $workflow.Parameters @@ -134,7 +134,7 @@ function Test-CreateLogicAppUsingInputParameterAsHashTable $planName = "StandardServicePlan" $Plan = TestSetup-CreateAppServicePlan $resourceGroup.ResourceGroupName $planName - $definitionFilePath = "Resources\TestSimpleWorkflowDefinition.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowDefinition.json" $parameters = @{destinationUri="http://www.bing.com"} $workflow = New-AzureRmLogicApp -ResourceGroupName $resourceGroupName -Name $workflowName -DefinitionFilePath $definitionFilePath -Parameters $parameters -AppServicePlan $planName @@ -154,7 +154,7 @@ function Test-CreateLogicAppUsingDefinitionWithTriggers $resourceGroup = TestSetup-CreateResourceGroup $workflowName = getAssetname $resourceGroupName = $resourceGroup.ResourceGroupName - $definitionFilePath = "Resources\TestSimpleWorkflowTriggerDefinition.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowTriggerDefinition.json" $planName = "StandardServicePlan" $Plan = TestSetup-CreateAppServicePlan $resourceGroup.ResourceGroupName $planName @@ -177,7 +177,7 @@ function Test-CreateAndGetLogicAppUsingDefinitionWithActions $resourceGroup = TestSetup-CreateResourceGroup $workflowName = getAssetname $resourceGroupName = $resourceGroup.ResourceGroupName - $definitionFilePath = "Resources\TestSimpleWorkflowActionDefinition.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowActionDefinition.json" $planName = "StandardServicePlan" $Plan = TestSetup-CreateAppServicePlan $resourceGroup.ResourceGroupName $planName @@ -217,8 +217,8 @@ function Test-RemoveNonExistingLogicApp <# .SYNOPSIS -Test Set-AzureRmLogicApp command to update workflow defintion without parametrs. -Test Set-AzureRmLogicApp command to update workflow defintion and state to Disabled. +Test Set-AzureRmLogicApp command to update workflow definition without parameters. +Test Set-AzureRmLogicApp command to update workflow definition and state to Disabled. Test Set-AzureRmLogicApp command to update workflow state to Enabled. Test Set-AzureRmLogicApp command to set logic app with null definition. Test Set-AzureRmLogicApp command to set non-existing logic app. @@ -232,14 +232,14 @@ function Test-UpdateLogicApp $planName = "StandardServicePlan" $Plan = TestSetup-CreateAppServicePlan $resourceGroup.ResourceGroupName $planName - $simpleDefinitionFilePath = "Resources\TestSimpleWorkflowDefinition.json" - $simpleParameterFilePath = "Resources\TestSimpleWorkflowParameter.json" + $simpleDefinitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowDefinition.json" + $simpleParameterFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowParameter.json" $workflow = $resourceGroup | New-AzureRmLogicApp -Name $workflowName -AppServicePlan $planName -DefinitionFilePath $simpleDefinitionFilePath -ParameterFilePath $simpleParameterFilePath Assert-NotNull $workflow #Case1: Update definition with no parameters and disable - $definitionFilePath = "Resources\TestSimpleWorkflowTriggerDefinition.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowTriggerDefinition.json" $UpdatedWorkflow = Set-AzureRmLogicApp -ResourceGroupName $resourceGroupName -Name $workflowName -State "Disabled" -DefinitionFilePath $definitionFilePath -Parameters $null @@ -272,7 +272,7 @@ function Test-UpdateLogicApp try { $workflowName = "82D2D842-C312-445C-8A4D-E3EE9542436D" - $definitionFilePath = "Resources\TestSimpleWorkflowTriggerDefinition.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowTriggerDefinition.json" Set-AzureRmLogicApp -ResourceGroupName $resourceGroupName -Name $workflowName -AppServicePlan $planName -DefinitionFilePath $definitionFilePath } catch @@ -290,8 +290,8 @@ function Test-CreateLogicAppWithNonExistingAppServicePlan $resourceGroup = TestSetup-CreateResourceGroup $workflowName = getAssetname $resourceGroupName = $resourceGroup.ResourceGroupName - $definitionFilePath = "Resources\TestSimpleWorkflowDefinition.json" - $parameterFilePath = "Resources\TestSimpleWorkflowParameter.json" + $definitionFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowDefinition.json" + $parameterFilePath = "$TestOutputRoot\Resources\TestSimpleWorkflowParameter.json" $Plan = "B9F87338CAE4470F9116F3D685365748" try { diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/packages.config b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/packages.config index 3e8f833721fe..c8491a660e22 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp.Test/packages.config +++ b/src/ResourceManager/LogicApp/Commands.LogicApp.Test/packages.config @@ -2,26 +2,27 @@ - - + - - - + - - - - + + + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp/Commands.LogicApp.csproj b/src/ResourceManager/LogicApp/Commands.LogicApp/Commands.LogicApp.csproj index f2433b0c2f42..5fb78e776b15 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp/Commands.LogicApp.csproj +++ b/src/ResourceManager/LogicApp/Commands.LogicApp/Commands.LogicApp.csproj @@ -58,40 +58,38 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - + False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll + ..\..\..\packages\Microsoft.Azure.Management.Logic.0.2.0-preview\lib\dotnet\Microsoft.Azure.Management.Logic.dll + True - + False - ..\..\..\packages\Microsoft.Azure.Management.Logic.0.1.0-preview\lib\net45\Microsoft.Azure.Management.Logic.dll - - - False - ..\..\..\packages\Microsoft.Azure.Management.WebSites.0.16.7-preview\lib\net45\Microsoft.Azure.Management.WebSites.dll + ..\..\..\packages\Microsoft.Azure.Management.WebSites.1.1.0-preview\lib\net45\Microsoft.Azure.Management.WebSites.dll False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + True - + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + True - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.2.0\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True - + False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.1.0.20\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.0.9.3-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll @@ -113,7 +111,9 @@ + + @@ -167,6 +167,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClient.cs b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClient.cs index bd7cdf1e8ca3..f2922dddc846 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClient.cs +++ b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClient.cs @@ -18,8 +18,8 @@ namespace Microsoft.Azure.Commands.LogicApp.Utilities using System; using System.Management.Automation; using System.Globalization; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.Logic; using Microsoft.Azure.Management.Logic.Models; diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientAccessKeyOperations.cs b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientAccessKeyOperations.cs index b84f2fac9588..57b1ca9704a2 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientAccessKeyOperations.cs +++ b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientAccessKeyOperations.cs @@ -16,7 +16,6 @@ namespace Microsoft.Azure.Commands.LogicApp.Utilities { using Microsoft.Azure.Management.Logic.Models; using Microsoft.Azure.Management.Logic; - using Microsoft.Rest.Azure; using System; /// diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientRunOperations.cs b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientRunOperations.cs index 85deda045b36..c58f197a1c74 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientRunOperations.cs +++ b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientRunOperations.cs @@ -21,7 +21,6 @@ namespace Microsoft.Azure.Commands.LogicApp.Utilities using System.Threading.Tasks; using Microsoft.Azure.Management.Logic.Models; using Microsoft.Azure.Management.Logic; - using Microsoft.Rest.Azure; /// /// LogicApp client partial class for run operations diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientTriggerOperations.cs b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientTriggerOperations.cs index b700a77b4c1d..b3c55f4eca71 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientTriggerOperations.cs +++ b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/LogicAppClientTriggerOperations.cs @@ -16,7 +16,6 @@ namespace Microsoft.Azure.Commands.LogicApp.Utilities { using Microsoft.Azure.Management.Logic.Models; using Microsoft.Azure.Management.Logic; - using Microsoft.Rest.Azure; /// /// LogicApp client partial class for trigger operations diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/WebsitesClient.cs b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/WebsitesClient.cs index 2373c40f6c07..7ef63894a1cd 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/WebsitesClient.cs +++ b/src/ResourceManager/LogicApp/Commands.LogicApp/Utilities/WebsitesClient.cs @@ -16,8 +16,8 @@ namespace Microsoft.Azure.Commands.LogicApp.Utilities { using System; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.WebSites; using Microsoft.Azure.Management.WebSites.Models; diff --git a/src/ResourceManager/LogicApp/Commands.LogicApp/packages.config b/src/ResourceManager/LogicApp/Commands.LogicApp/packages.config index 87731414abed..a7b69909159c 100644 --- a/src/ResourceManager/LogicApp/Commands.LogicApp/packages.config +++ b/src/ResourceManager/LogicApp/Commands.LogicApp/packages.config @@ -2,19 +2,18 @@ - - + - + - - - + + + \ No newline at end of file diff --git a/src/ResourceManager/LogicApp/LogicApp.sln b/src/ResourceManager/LogicApp/LogicApp.sln index 97fc1d8da769..5416780bbead 100644 --- a/src/ResourceManager/LogicApp/LogicApp.sln +++ b/src/ResourceManager/LogicApp/LogicApp.sln @@ -16,17 +16,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{33C9DADF-8EE1-4FCB-8E15-FEEB28330BC1}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.LogicApp", "Commands.LogicApp\Commands.LogicApp.csproj", "{FFE4E475-B32C-4F89-9D52-F7CEBF709C74}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.LogicApp.Test", "Commands.LogicApp.Test\Commands.LogicApp.Test.csproj", "{F1F11BB1-592B-45A3-844C-7F8A585AD107}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -69,6 +66,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Network/.nuget/packages.config b/src/ResourceManager/Network/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Network/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Network/Commands.Network.Test/Commands.Network.Test.csproj b/src/ResourceManager/Network/Commands.Network.Test/Commands.Network.Test.csproj index 9e5c464bc0ad..fdf108d52df2 100644 --- a/src/ResourceManager/Network/Commands.Network.Test/Commands.Network.Test.csproj +++ b/src/ResourceManager/Network/Commands.Network.Test/Commands.Network.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\..\..\ true - c796be6d + 7f1b82e3 true @@ -49,10 +50,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -67,17 +64,17 @@ ..\..\..\packages\Microsoft.Azure.Management.Authorization.2.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll - ..\..\..\packages\Microsoft.Azure.Management.Network.3.1.0-preview\lib\net45\Microsoft.Azure.Management.Network.dll + ..\..\..\packages\Microsoft.Azure.Management.Network.3.2.0-preview\lib\net45\Microsoft.Azure.Management.Network.dll True ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.4.0-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.6.0-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -88,19 +85,16 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.2.5.4\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.2.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll True @@ -143,12 +137,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -356,6 +358,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ResourceManager/Network/Commands.Network.Test/NetworkResourcesController.cs b/src/ResourceManager/Network/Commands.Network.Test/NetworkResourcesController.cs index 6fc9f2e44434..38a1df2c3f65 100644 --- a/src/ResourceManager/Network/Commands.Network.Test/NetworkResourcesController.cs +++ b/src/ResourceManager/Network/Commands.Network.Test/NetworkResourcesController.cs @@ -14,6 +14,7 @@ using System; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Network; @@ -21,9 +22,11 @@ using Microsoft.Azure.Subscriptions; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.Azure.Test; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using RestTestFramework = Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using Microsoft.Azure.Test.HttpRecorder; +using System.IO; namespace Commands.Network.Test { @@ -77,6 +80,7 @@ public void RunPsTestWorkflow( string callingClassType, string mockName) { + HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); using (RestTestFramework.MockContext context = RestTestFramework.MockContext.Start(callingClassType, mockName)) { this.csmTestFactory = new CSMTestEnvironmentFactory(); diff --git a/src/ResourceManager/Network/Commands.Network.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Network/Commands.Network.Test/Properties/AssemblyInfo.cs index 7f36868b4f31..dfe5a4324068 100644 --- a/src/ResourceManager/Network/Commands.Network.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Network/Commands.Network.Test/Properties/AssemblyInfo.cs @@ -34,3 +34,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/ExpressRouteCircuitTests.cs b/src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/ExpressRouteCircuitTests.cs index a74a8d91db2d..861ab5a509e9 100644 --- a/src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/ExpressRouteCircuitTests.cs +++ b/src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/ExpressRouteCircuitTests.cs @@ -33,7 +33,7 @@ public void TestExpressRouteCircuitPeeringCRUD() NetworkResourcesController.NewInstance.RunPsTest("Test-ExpressRouteCircuitPeeringCRUD"); } - [Fact] + [Fact(Skip = "Rerecord tests")] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestExpressRouteCircuitAuthorizationCRUD() { diff --git a/src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/VirtualNetworkGatewayTests.cs b/src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/VirtualNetworkGatewayTests.cs index 2dd76f2e4994..7856915aa423 100644 --- a/src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/VirtualNetworkGatewayTests.cs +++ b/src/ResourceManager/Network/Commands.Network.Test/ScenarioTests/VirtualNetworkGatewayTests.cs @@ -19,7 +19,7 @@ namespace Commands.Network.Test.ScenarioTests { public class VirtualNetworkGatewayTests : Microsoft.WindowsAzure.Commands.Test.Utilities.Common.RMTestBase { - [Fact] + [Fact(Skip = "Rerecord tests")] [Trait(Category.AcceptanceType, Category.CheckIn)] public void TestVirtualNetworkGatewayCRUD() { diff --git a/src/ResourceManager/Network/Commands.Network.Test/packages.config b/src/ResourceManager/Network/Commands.Network.Test/packages.config index 9094371fac7c..88d65709b73b 100644 --- a/src/ResourceManager/Network/Commands.Network.Test/packages.config +++ b/src/ResourceManager/Network/Commands.Network.Test/packages.config @@ -2,27 +2,29 @@ - - + - - + + - - - - + + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Network/Commands.Network/Commands.Network.csproj b/src/ResourceManager/Network/Commands.Network/Commands.Network.csproj index c4fe3e8d7089..228e26ae85a9 100644 --- a/src/ResourceManager/Network/Commands.Network/Commands.Network.csproj +++ b/src/ResourceManager/Network/Commands.Network/Commands.Network.csproj @@ -54,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -77,7 +73,7 @@ ..\..\..\packages\Microsoft.Azure.Management.Authorization.2.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll - ..\..\..\packages\Microsoft.Azure.Management.Network.3.1.0-preview\lib\net45\Microsoft.Azure.Management.Network.dll + ..\..\..\packages\Microsoft.Azure.Management.Network.3.2.0-preview\lib\net45\Microsoft.Azure.Management.Network.dll True @@ -100,16 +96,16 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.2.5.4\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -452,6 +448,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Network/Commands.Network/Common/NetworkClient.cs b/src/ResourceManager/Network/Commands.Network/Common/NetworkClient.cs index 43386d70b4ee..4e9212b18f21 100644 --- a/src/ResourceManager/Network/Commands.Network/Common/NetworkClient.cs +++ b/src/ResourceManager/Network/Commands.Network/Common/NetworkClient.cs @@ -14,8 +14,6 @@ using System; using Microsoft.Azure.Management.Network; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Management.Network.Models; using System.Threading.Tasks; using System.Threading; @@ -28,6 +26,8 @@ using System.Net.Http.Headers; using System.Net; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Network { diff --git a/src/ResourceManager/Network/Commands.Network/VirtualNetworkGateway/GenerateAzureVpnClientPackage.cs b/src/ResourceManager/Network/Commands.Network/VirtualNetworkGateway/GenerateAzureVpnClientPackage.cs index cc07b8172b98..0165ce50b528 100644 --- a/src/ResourceManager/Network/Commands.Network/VirtualNetworkGateway/GenerateAzureVpnClientPackage.cs +++ b/src/ResourceManager/Network/Commands.Network/VirtualNetworkGateway/GenerateAzureVpnClientPackage.cs @@ -26,7 +26,7 @@ using Microsoft.Rest.Azure; using Microsoft.Azure.Management.Network.Models; using Microsoft.Rest; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Newtonsoft.Json; using System.Text; using System.Net.Http.Headers; diff --git a/src/ResourceManager/Network/Commands.Network/packages.config b/src/ResourceManager/Network/Commands.Network/packages.config index ebfd14bf2d62..f87edbf264e5 100644 --- a/src/ResourceManager/Network/Commands.Network/packages.config +++ b/src/ResourceManager/Network/Commands.Network/packages.config @@ -3,13 +3,12 @@ - - + @@ -19,9 +18,9 @@ - - - + + + diff --git a/src/ResourceManager/Network/Network.sln b/src/ResourceManager/Network/Network.sln index c4eed8bb5e5f..8b5cd9138a3a 100644 --- a/src/ResourceManager/Network/Network.sln +++ b/src/ResourceManager/Network/Network.sln @@ -24,10 +24,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{CC3087D9-4907-416C-B3FE-EF68BF6AC42E}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -75,6 +72,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/NotificationHubs/.nuget/packages.config b/src/ResourceManager/NotificationHubs/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/NotificationHubs/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/Commands.NotificationHubs.Test.csproj b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/Commands.NotificationHubs.Test.csproj index 9b79dce830b9..5cdc8152da91 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/Commands.NotificationHubs.Test.csproj +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/Commands.NotificationHubs.Test.csproj @@ -1,5 +1,7 @@  + + Debug @@ -13,7 +15,7 @@ 512 ..\..\..\ true - b567f9bb + 72aa27f0 true @@ -33,6 +35,10 @@ 4 + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3436a126-edc9-4060-8952-9a1be34cdd95} Commands.ScenarioTests.ResourceManager.Common @@ -49,10 +55,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll True - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll True @@ -73,10 +75,10 @@ True - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -86,12 +88,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -136,12 +138,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -183,4 +193,4 @@ - + \ No newline at end of file diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/Properties/AssemblyInfo.cs index cf3340d09fa8..be11fc52e466 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/Properties/AssemblyInfo.cs @@ -1,6 +1,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -34,3 +35,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/ScenarioTests/NotificationHubServiceTests.ps1 b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/ScenarioTests/NotificationHubServiceTests.ps1 index 9d8d9cc14489..fe05a613af0e 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/ScenarioTests/NotificationHubServiceTests.ps1 +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/ScenarioTests/NotificationHubServiceTests.ps1 @@ -58,11 +58,7 @@ function Test-CRUDNamespace Write-Debug " Create new notificationHub namespace" Write-Debug "NamespaceName : $namespaceName" $result = New-AzureRmNotificationHubsNamespace -ResourceGroup $resourceGroupName -Namespace $namespaceName -Location $location - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 Write-Debug "Get the created namespace within the resource group" $createdNamespace = Get-AzureRmNotificationHubsNamespace -ResourceGroup $resourceGroupName -Namespace $namespaceName @@ -92,11 +88,7 @@ function Test-CRUDNamespace $namespaceName2 = Get-NamespaceName Write-Debug "Namespace name : $namespaceName2" $result = New-AzureRmNotificationHubsNamespace -ResourceGroup $secondResourceGroup -Namespace $namespaceName2 -Location $location - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 Write-Debug "Get all the namespaces created in the resourceGroup" $allCreatedNamespace = Get-AzureRmNotificationHubsNamespace -ResourceGroup $secondResourceGroup @@ -150,11 +142,7 @@ function Test-CRUDNamespace $updatedNamespace = Set-AzureRmNotificationHubsNamespace -ResourceGroup $secondResourceGroup -Namespace $namespaceName2 -Location $location -Tags $tags Assert-AreEqual 2 $updatedNamespace.Tags.Count - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 Write-Debug " Get the updated namespace " $getUpdatedNamespace = Get-AzureRmNotificationHubsNamespace -ResourceGroup $secondResourceGroup -Namespace $namespaceName2 @@ -189,12 +177,8 @@ function Test-CRUDNamespaceAuth Write-Debug "Namespace name : $namespaceName" $result = New-AzureRmNotificationHubsNamespace -ResourceGroup $resourceGroupName -Namespace $namespaceName -Location $location - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } - + Wait-Seconds 15 + Write-Debug " Get the created namespace within the resource group" $createdNamespace = Get-AzureRmNotificationHubsNamespace -ResourceGroup $resourceGroupName -Namespace $namespaceName Assert-True {$createdNamespace.Count -eq 1} @@ -293,11 +277,7 @@ function Test-CRUDNamespaceAuth Assert-True { $updatedAuthRule.Rights -Contains "Manage" } Assert-AreEqual $newPrimaryKey $updatedAuthRule.PrimaryKey Assert-NotNull $updatedAuthRule.SecondaryKey - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 Write-Debug "Get updated Namespace AuthorizationRules" $updatedAuthRule = Get-AzureRmNotificationHubsNamespaceAuthorizationRules -ResourceGroup $resourceGroupName -Namespace $namespaceName -AuthorizationRule $authRuleName @@ -346,11 +326,7 @@ function Test-CRUDNotificationHub Write-Debug " Create new notificationHub namespace" Write-Debug " Namespace name : $namespaceName" $result = New-AzureRmNotificationHubsNamespace -ResourceGroup $resourceGroupName -Namespace $namespaceName -Location $location - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 Write-Debug " Get the created namespace within the resource group" $createdNamespace = Get-AzureRmNotificationHubsNamespace -ResourceGroup $resourceGroupName -Namespace $namespaceName @@ -425,11 +401,7 @@ function Test-CRUDNotificationHub $createdNotificationHub.WnsCredential.Properties.SecretKey = "w7TBprR-9tJxn9mUOdK4PPHLCAzSYFhp" $createdNotificationHub.WnsCredential.Properties.WindowsLiveEndpoint = "http://pushtestservice.cloudapp.net/LiveID/accesstoken.srf" $result = Set-AzureRmNotificationHub -ResourceGroup $resourceGroupName -Namespace $namespaceName -NotificationHubObj $createdNotificationHub - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 Write-Debug " Get the PNS credentials for the first notificationHub created" $pnsCredentials = Get-AzureRmNotificationHubPNSCredentials -ResourceGroup $resourceGroupName -Namespace $namespaceName -NotificationHub $notificationHubName @@ -467,11 +439,7 @@ function Test-CRUDNHAuth Write-Debug " Create new notificationHub namespace" Write-Debug "Namespace name : $namespaceName" $result = New-AzureRmNotificationHubsNamespace -ResourceGroup $resourceGroupName -Namespace $namespaceName -Location $location - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 Write-Debug " Get the created namespace within the resource group" $createdNamespace = Get-AzureRmNotificationHubsNamespace -ResourceGroup $resourceGroupName -Namespace $namespaceName @@ -508,11 +476,7 @@ function Test-CRUDNHAuth Assert-AreEqual 2 $result.Rights.Count Assert-True { $result.Rights -Contains "Listen" } Assert-True { $result.Rights -Contains "Send" } - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 Write-Debug "Get created authorizationRule" $createdAuthRule = Get-AzureRmNotificationHubAuthorizationRules -ResourceGroup $resourceGroupName -Namespace $namespaceName -NotificationHub $notificationHubName -AuthorizationRule $authRuleName @@ -559,11 +523,7 @@ function Test-CRUDNHAuth Assert-True { $updatedAuthRule.Rights -Contains "Manage" } Assert-AreEqual $newPrimaryKey $updatedAuthRule.PrimaryKey Assert-NotNull $updatedAuthRule.SecondaryKey - - if($env:AZURE_TEST_MODE -ne "Playback") - { - Start-Sleep -Seconds 15 - } + Wait-Seconds 15 $updatedAuthRule = Get-AzureRmNotificationHubAuthorizationRules -ResourceGroup $resourceGroupName -Namespace $namespaceName -NotificationHub $notificationHubName -AuthorizationRule $authRuleName diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/ScenarioTests/TestBaseClass.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/ScenarioTests/TestBaseClass.cs index d583578af40e..993c1dc9885b 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/ScenarioTests/TestBaseClass.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/ScenarioTests/TestBaseClass.cs @@ -20,7 +20,7 @@ namespace Microsoft.Azure.Commands.NotificationHubs.Test.ScenarioTests using Microsoft.Azure.Test; using Microsoft.Azure.Management.NotificationHubs; using Microsoft.Azure.Management.Resources; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using System.Collections.Generic; diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/packages.config b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/packages.config index 7409c8cf0c84..2f718e77de14 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/packages.config +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs.Test/packages.config @@ -2,23 +2,26 @@ - - - + + - - + + - - - + + + + + + + diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands.NotificationHubs.csproj b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands.NotificationHubs.csproj index dd3e8ac247a9..083d448b5ded 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands.NotificationHubs.csproj +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands.NotificationHubs.csproj @@ -46,10 +46,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll True - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll True @@ -66,12 +62,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -92,6 +88,7 @@ + ..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll @@ -154,6 +151,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common @@ -177,4 +178,4 @@ - + \ No newline at end of file diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/AzureNotificationHubsCmdletBase.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/AzureNotificationHubsCmdletBase.cs index f8b50877df5d..599a074e76a2 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/AzureNotificationHubsCmdletBase.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/AzureNotificationHubsCmdletBase.cs @@ -20,7 +20,7 @@ using Microsoft.Azure.Commands.ResourceManager.Common; using System.IO; using Newtonsoft.Json; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using System.Collections.Generic; using System.Collections; using System.Globalization; diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/Namespace/NewAzureNotificationHubsNamespaceAuthorizationRules.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/Namespace/NewAzureNotificationHubsNamespaceAuthorizationRules.cs index cdec9e932db9..da67e955b55b 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/Namespace/NewAzureNotificationHubsNamespaceAuthorizationRules.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/Namespace/NewAzureNotificationHubsNamespaceAuthorizationRules.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Commands.NotificationHubs.Models; using Microsoft.Azure.Management.NotificationHubs.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/NewAzureNotificationHub.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/NewAzureNotificationHub.cs index 6de19a06106f..b4fd426a2263 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/NewAzureNotificationHub.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/NewAzureNotificationHub.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Commands.NotificationHubs.Models; using Microsoft.Azure.Management.NotificationHubs.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/NewAzureNotificationHubAuthorizationRules.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/NewAzureNotificationHubAuthorizationRules.cs index 506ac2375e57..060e40f835ef 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/NewAzureNotificationHubAuthorizationRules.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/NewAzureNotificationHubAuthorizationRules.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Commands.NotificationHubs.Models; using Microsoft.Azure.Management.NotificationHubs.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/SetAzureNotificationHub.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/SetAzureNotificationHub.cs index ba436f037f65..ecc779592ac2 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/SetAzureNotificationHub.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/SetAzureNotificationHub.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Commands.NotificationHubs.Models; using Microsoft.Azure.Management.NotificationHubs.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/SetAzureNotificationHubAuthorizationRules.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/SetAzureNotificationHubAuthorizationRules.cs index 90ff198bf136..30b1cefec1db 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/SetAzureNotificationHubAuthorizationRules.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/Commands/NotificationHub/SetAzureNotificationHubAuthorizationRules.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Commands.NotificationHubs.Models; using Microsoft.Azure.Management.NotificationHubs.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/NotificationHubsManagementClient.cs b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/NotificationHubsManagementClient.cs index 222fad5d40cd..1d6f3fa2c5e0 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/NotificationHubsManagementClient.cs +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/NotificationHubsManagementClient.cs @@ -13,18 +13,14 @@ // limitations under the License. using Microsoft.Azure.Commands.NotificationHubs.Models; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.NotificationHubs; using Microsoft.Azure.Management.NotificationHubs.Models; -using Microsoft.WindowsAzure.Commands.Utilities.Common; using System; -using System.Collections; using System.Collections.Generic; using System.Linq; -using System.Management.Automation; -using System.Net; using System.Security.Cryptography; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.NotificationHubs { diff --git a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/packages.config b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/packages.config index 149ed223d4c0..418cc46c6836 100644 --- a/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/packages.config +++ b/src/ResourceManager/NotificationHubs/Commands.NotificationHubs/packages.config @@ -2,7 +2,6 @@ - @@ -10,7 +9,7 @@ - - + + diff --git a/src/ResourceManager/NotificationHubs/NotificationHubs.sln b/src/ResourceManager/NotificationHubs/NotificationHubs.sln index 769bde41cbd5..1f6a6f3a4cc4 100644 --- a/src/ResourceManager/NotificationHubs/NotificationHubs.sln +++ b/src/ResourceManager/NotificationHubs/NotificationHubs.sln @@ -12,11 +12,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.Reso EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{73CD233D-7CEC-4BBE-8BA4-1BB83627BD61}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.NotificationHubs.Test", "Commands.NotificationHubs.Test\Commands.NotificationHubs.Test.csproj", "{EA66BF2C-4E5F-42FE-912C-B62AEB588308}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.NotificationHubs", "Commands.NotificationHubs\Commands.NotificationHubs.csproj", "{0C90F837-86C9-4205-858B-4D8DA5CB0352}" @@ -27,6 +22,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources", "..\Re EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -69,6 +66,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/OperationalInsights/.nuget/packages.config b/src/ResourceManager/OperationalInsights/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/OperationalInsights/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/Commands.OperationalInsights.Test.csproj b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/Commands.OperationalInsights.Test.csproj index d21f1a32e1e3..ac0c7f0b1241 100644 --- a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/Commands.OperationalInsights.Test.csproj +++ b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/Commands.OperationalInsights.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ 512 ..\..\..\ true - 07d4b600 + 3170476c true @@ -47,10 +48,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -70,11 +67,11 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -83,12 +80,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -131,16 +128,28 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/Properties/AssemblyInfo.cs index fdad9c8f317f..5b0f35772fbe 100644 --- a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/Properties/AssemblyInfo.cs @@ -35,3 +35,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/ScenarioTests/OperationalInsightsScenarioTestBase.cs b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/ScenarioTests/OperationalInsightsScenarioTestBase.cs index 01c8c250909a..2fba5ebf3032 100644 --- a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/ScenarioTests/OperationalInsightsScenarioTestBase.cs +++ b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/ScenarioTests/OperationalInsightsScenarioTestBase.cs @@ -12,7 +12,6 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.OperationalInsights; @@ -23,6 +22,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.OperationalInsights.Test { diff --git a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/packages.config b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/packages.config index f98a8534d963..6e58fbdde7e7 100644 --- a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/packages.config +++ b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights.Test/packages.config @@ -2,25 +2,28 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Client/OperationalInsightsClient.cs b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Client/OperationalInsightsClient.cs index 10f49eed9692..9e30db51381e 100644 --- a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Client/OperationalInsightsClient.cs +++ b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Client/OperationalInsightsClient.cs @@ -12,8 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.OperationalInsights; namespace Microsoft.Azure.Commands.OperationalInsights.Client diff --git a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Commands.OperationalInsights.csproj b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Commands.OperationalInsights.csproj index 26ba222b72e7..5bee5bc6c99a 100644 --- a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Commands.OperationalInsights.csproj +++ b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/Commands.OperationalInsights.csproj @@ -54,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -77,12 +73,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -215,6 +211,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/packages.config b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/packages.config index 685228d3e44c..77d1cc585d19 100644 --- a/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/packages.config +++ b/src/ResourceManager/OperationalInsights/Commands.OperationalInsights/packages.config @@ -2,7 +2,6 @@ - @@ -11,8 +10,8 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/OperationalInsights/OperationalInsights.sln b/src/ResourceManager/OperationalInsights/OperationalInsights.sln index 1b0c1f52942c..d19dfe60c6b9 100644 --- a/src/ResourceManager/OperationalInsights/OperationalInsights.sln +++ b/src/ResourceManager/OperationalInsights/OperationalInsights.sln @@ -22,10 +22,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Co EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{7A5F6CD4-93F9-47E4-BC0F-05DB35DEA84D}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,6 +66,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Profile/.nuget/packages.config b/src/ResourceManager/Profile/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Profile/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/AzureRMProfileTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/AzureRMProfileTests.cs index 87a6e7ad1a4e..2c8397f4f707 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/AzureRMProfileTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/AzureRMProfileTests.cs @@ -12,8 +12,6 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using System.Linq; using Xunit; using System; @@ -23,9 +21,10 @@ using Microsoft.IdentityModel.Clients.ActiveDirectory; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Common; -using Moq; using System.Collections.Concurrent; using System.Threading.Tasks; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile; using Microsoft.Azure.Commands.Profile.Models; diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/ClientFactoryTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/ClientFactoryTests.cs index a08d5154c589..f775c47ba5d7 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/ClientFactoryTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/ClientFactoryTests.cs @@ -16,13 +16,10 @@ using Xunit; using System; using System.Net.Http.Headers; -using Hyak.Common; -using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Rest.TransientFaultHandling; using Microsoft.WindowsAzure.Commands.ScenarioTest; namespace Microsoft.Azure.Commands.ResourceManager.Profile.Test diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.csproj b/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.csproj index 048602ac9837..cc0056bc0f9c 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.csproj +++ b/src/ResourceManager/Profile/Commands.Profile.Test/Commands.Profile.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ ..\..\..\ true {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 98e53b12 + 5c66c04b true @@ -56,10 +57,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -72,11 +69,11 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.14-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll True - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -99,12 +96,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -134,9 +131,9 @@ ..\..\..\packages\WindowsAzure.Storage.5.0.0\lib\net40\Microsoft.WindowsAzure.Storage.dll - - False - ..\..\..\packages\Moq.4.2.1402.2112\lib\net40\Moq.dll + + ..\..\..\packages\Moq.4.2.1409.1722\lib\net40\Moq.dll + True ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll @@ -166,12 +163,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -225,10 +230,18 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common + + {cff09e81-1e31-444e-b4d4-a21e946c29e2} + Commands.ServiceManagement.Common + {3819d8a7-c62c-4c47-8ddd-0332d9ce1252} Commands.ResourceManager.Common @@ -244,4 +257,5 @@ + \ No newline at end of file diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/CommonDataCmdletTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/CommonDataCmdletTests.cs index 7c34dafdbd3e..0058e0b8c93a 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/CommonDataCmdletTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/CommonDataCmdletTests.cs @@ -12,14 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; -using System.Linq; using Xunit; using System; -using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; -using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/ContextCmdletTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/ContextCmdletTests.cs index 08878f8fbd46..297faf11cdbf 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/ContextCmdletTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/ContextCmdletTests.cs @@ -14,17 +14,13 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Commands.Profile; -using Microsoft.Azure.Commands.ResourceManager.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using System.Linq; using Xunit; -using System; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.ResourceManager.Profile.Test { diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/EnvironmentCmdletTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/EnvironmentCmdletTests.cs index 3136ec9a73f6..692b979bdc01 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/EnvironmentCmdletTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/EnvironmentCmdletTests.cs @@ -15,11 +15,12 @@ using System; using System.Management.Automation; using System.Collections.Generic; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.Azure.Commands.ResourceManager.Common; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/LoginCmdletTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/LoginCmdletTests.cs index 6b1335eba893..9633c79c2c5d 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/LoginCmdletTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/LoginCmdletTests.cs @@ -13,20 +13,14 @@ // ---------------------------------------------------------------------------------- using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Commands.Profile; -using Microsoft.Azure.Commands.ResourceManager.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using System.Linq; using Xunit; -using System; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Hyak.Common; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; using System.Reflection; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Profile.Test { diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/ProfileCmdletTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/ProfileCmdletTests.cs index 4b43d22d9998..f428d04ab202 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/ProfileCmdletTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/ProfileCmdletTests.cs @@ -14,14 +14,13 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Commands.Profile; -using Microsoft.Azure.Commands.ResourceManager.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.ScenarioTest; using System.Linq; using Xunit; using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/ProfileController.cs b/src/ResourceManager/Profile/Commands.Profile.Test/ProfileController.cs index 8f1107b2edb4..5cf4b94f4f49 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/ProfileController.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/ProfileController.cs @@ -14,7 +14,7 @@ using System; using System.Linq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Subscriptions; using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/ProfileModuleTests.ps1 b/src/ResourceManager/Profile/Commands.Profile.Test/ProfileModuleTests.ps1 index 38f7b902e4a0..8dc26becc6e9 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/ProfileModuleTests.ps1 +++ b/src/ResourceManager/Profile/Commands.Profile.Test/ProfileModuleTests.ps1 @@ -23,7 +23,7 @@ function Test-LoadProfileModule $global:pushedProfileModule = $(Get-Module AzureRM.Profile).Path Remove-Module AzureRM.Profile try { - Register-PSRepository -Name "ProfileModuleTest" -SourceLocation (Resolve-Path .\FakeModuleRepo).Path -InstallationPolicy Trusted + Register-PSRepository -Name "ProfileModuleTest" -SourceLocation (Resolve-Path "$TestOutputRoot\FakeModuleRepo").Path -InstallationPolicy Trusted try { Install-Module AzureRM.ApiManagement -Scope CurrentUser -Repository ProfileModuleTest -RequiredVersion 998.9.8 $global:buffer = Import-Module $global:pushedProfileModule 2>&1 3>&1 | Out-String diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Profile/Commands.Profile.Test/Properties/AssemblyInfo.cs index 38345b60ee46..f9ddb89aaa5c 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/Properties/AssemblyInfo.cs @@ -27,3 +27,4 @@ [assembly: CLSCompliant(false)] [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/RPRegistrationDelegatingHandlerTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/RPRegistrationDelegatingHandlerTests.cs index b1c0ffe39a01..c893a6c30478 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/RPRegistrationDelegatingHandlerTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/RPRegistrationDelegatingHandlerTests.cs @@ -17,17 +17,15 @@ using System.Net.Http; using System.Threading; using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Internal.Resources; -using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Moq; using Xunit; using System.Linq; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.Azure.Management.Internal.Resources.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Profile.Test { diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/SessionRecords/Microsoft.Azure.Commands.Profile.Test.ProfileModuleTests/WarningOnIncompatibleVersions.json b/src/ResourceManager/Profile/Commands.Profile.Test/SessionRecords/Microsoft.Azure.Commands.Profile.Test.ProfileModuleTests/WarningOnIncompatibleVersions.json index f085c51a6519..b5ff7a318e86 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/SessionRecords/Microsoft.Azure.Commands.Profile.Test.ProfileModuleTests/WarningOnIncompatibleVersions.json +++ b/src/ResourceManager/Profile/Commands.Profile.Test/SessionRecords/Microsoft.Azure.Commands.Profile.Test.ProfileModuleTests/WarningOnIncompatibleVersions.json @@ -1,5 +1,7 @@ { "Entries": [], "Names": {}, - "Variables": {} + "Variables": { + "SubscriptionId": "3ca49042-782a-4cc9-89b5-ee1b487fe115" + } } \ No newline at end of file diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/TenantCmdletTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/TenantCmdletTests.cs index 6f12018f4a98..0214f00ca3bf 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/TenantCmdletTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/TenantCmdletTests.cs @@ -13,18 +13,11 @@ // ---------------------------------------------------------------------------------- using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Commands.Profile; -using Microsoft.Azure.Commands.ResourceManager.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using System.Linq; using Xunit; -using System; -using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Hyak.Common; -using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; namespace Microsoft.Azure.Commands.Profile.Test diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/TypeConversionTests.cs b/src/ResourceManager/Profile/Commands.Profile.Test/TypeConversionTests.cs index 5e42f5ecdae5..814855e88fff 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/TypeConversionTests.cs +++ b/src/ResourceManager/Profile/Commands.Profile.Test/TypeConversionTests.cs @@ -1,13 +1,7 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Newtonsoft.Json; using Xunit; using Xunit.Extensions; @@ -15,10 +9,264 @@ namespace Microsoft.Azure.Commands.Profile.Test { public class TypeConversionTests { + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CanConvertNullEnvironments() + { + Assert.Null((PSAzureEnvironment)null); + var environment = (PSAzureEnvironment) new AzureEnvironment(); + Assert.NotNull(environment); + Assert.Null(environment.ActiveDirectoryAuthority); + Assert.Null(environment.ActiveDirectoryServiceEndpointResourceId); + Assert.Null(environment.AdTenant); + Assert.Null(environment.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix); + Assert.Null(environment.AzureDataLakeStoreFileSystemEndpointSuffix); + Assert.Null(environment.AzureKeyVaultDnsSuffix); + Assert.Null(environment.AzureKeyVaultServiceEndpointResourceId); + Assert.False(environment.EnableAdfsAuthentication); + Assert.Null(environment.GalleryUrl); + Assert.Null(environment.GraphUrl); + Assert.Null(environment.GraphEndpointResourceId); + Assert.Null(environment.ManagementPortalUrl); + Assert.Null(environment.Name); + Assert.Null(environment.PublishSettingsFileUrl); + Assert.Null(environment.ResourceManagerUrl); + Assert.Null(environment.ServiceManagementUrl); + Assert.Null(environment.SqlDatabaseDnsSuffix); + Assert.Null(environment.StorageEndpointSuffix); + Assert.Null(environment.TrafficManagerDnsSuffix); + } + + [Theory] + [InlineData("TestAll", true, "https://login.microsoftonline.com","https://management.core.windows.net/", + "Common", "https://mangement.azure.com/dataLakeJobs", "https://management.azure.com/dataLakeFiles", + ".keyvault.azure.com", "https://keyvault.azure.com/", "https://gallery.azure.com", + "https://graph.windows.net", "https://graph.windows.net/", "https://manage.windowsazure.com", + "https://manage.windowsazure.com/publishsettings", "https://management.azure.com", + "https://management.core.windows.net", ".sql.azure.com", ".core.windows.net", + ".trafficmanager.windows.net")] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CanConvertValidEnvironments(string name, bool onPremise, string activeDirectory, string serviceResource, + string adTenant, string dataLakeJobs, string dataLakeFiles, string kvDnsSuffix, + string kvResource, string gallery, string graph, string graphResource, string portal, + string publishSettings, string resourceManager, string serviceManagement, + string sqlSuffix, string storageSuffix, string trafficManagerSuffix) + { + AzureEnvironment azEnvironment = CreateEnvironment(name, onPremise, activeDirectory, + serviceResource, adTenant, dataLakeJobs, dataLakeFiles, kvDnsSuffix, + kvResource, gallery, graph, graphResource, portal, publishSettings, + resourceManager, serviceManagement, sqlSuffix, storageSuffix, + trafficManagerSuffix); + var environment = (PSAzureEnvironment) azEnvironment; + Assert.NotNull(environment); + CheckEndpoint(AzureEnvironment.Endpoint.ActiveDirectory, azEnvironment, + environment.ActiveDirectoryAuthority); + CheckEndpoint(AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, + azEnvironment, environment.ActiveDirectoryServiceEndpointResourceId); + CheckEndpoint(AzureEnvironment.Endpoint.AdTenant, azEnvironment, + environment.AdTenant); + CheckEndpoint(AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, azEnvironment, + environment.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, azEnvironment, + environment.AzureDataLakeStoreFileSystemEndpointSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, azEnvironment, + environment.AzureKeyVaultDnsSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, azEnvironment, + environment.AzureKeyVaultServiceEndpointResourceId); + CheckEndpoint(AzureEnvironment.Endpoint.Gallery, azEnvironment, + environment.GalleryUrl); + CheckEndpoint(AzureEnvironment.Endpoint.Graph, azEnvironment, + environment.GraphUrl); + CheckEndpoint(AzureEnvironment.Endpoint.GraphEndpointResourceId, azEnvironment, + environment.GraphEndpointResourceId); + CheckEndpoint(AzureEnvironment.Endpoint.ManagementPortalUrl, azEnvironment, + environment.ManagementPortalUrl); + CheckEndpoint(AzureEnvironment.Endpoint.PublishSettingsFileUrl, azEnvironment, + environment.PublishSettingsFileUrl); + CheckEndpoint(AzureEnvironment.Endpoint.ResourceManager, azEnvironment, + environment.ResourceManagerUrl); + CheckEndpoint(AzureEnvironment.Endpoint.ServiceManagement, azEnvironment, + environment.ServiceManagementUrl); + CheckEndpoint(AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, azEnvironment, + environment.SqlDatabaseDnsSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.StorageEndpointSuffix, azEnvironment, + environment.StorageEndpointSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, azEnvironment, + environment.TrafficManagerDnsSuffix); + Assert.Equal(azEnvironment.Name, environment.Name); + Assert.Equal(azEnvironment.OnPremise, environment.EnableAdfsAuthentication); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CanConvertNullPSEnvironments() + { + PSAzureEnvironment env = null; + Assert.Null((AzureEnvironment)env); + var environment = (AzureEnvironment) new PSAzureEnvironment(); + Assert.NotNull(environment); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.ActiveDirectory)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.AdTenant)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId)); + Assert.False(environment.OnPremise); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.Gallery)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.Graph)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.GraphEndpointResourceId)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.ManagementPortalUrl)); + Assert.Null(environment.Name); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.PublishSettingsFileUrl)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.ResourceManager)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.ServiceManagement)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.StorageEndpointSuffix)); + Assert.False(environment.IsEndpointSet(AzureEnvironment.Endpoint.TrafficManagerDnsSuffix)); + } + [Theory] + [InlineData("TestAll", true, "https://login.microsoftonline.com","https://management.core.windows.net/", + "Common", "https://mangement.azure.com/dataLakeJobs", "https://management.azure.com/dataLakeFiles", + ".keyvault.azure.com", "https://keyvault.azure.com/", "https://gallery.azure.com", + "https://graph.windows.net", "https://graph.windows.net/", "https://manage.windowsazure.com", + "https://manage.windowsazure.com/publishsettings", "https://management.azure.com", + "https://management.core.windows.net", ".sql.azure.com", ".core.windows.net", + ".trafficmanager.windows.net")] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CanConvertValidPSEnvironments(string name, bool onPremise, string activeDirectory, string serviceResource, + string adTenant, string dataLakeJobs, string dataLakeFiles, string kvDnsSuffix, + string kvResource, string gallery, string graph, string graphResource, string portal, + string publishSettings, string resourceManager, string serviceManagement, + string sqlSuffix, string storageSuffix, string trafficManagerSuffix) + { + PSAzureEnvironment environment = new PSAzureEnvironment + { + Name =name, + EnableAdfsAuthentication = onPremise, + ActiveDirectoryAuthority = activeDirectory, + ActiveDirectoryServiceEndpointResourceId = serviceResource, + AdTenant = adTenant, + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix = dataLakeJobs, + AzureDataLakeStoreFileSystemEndpointSuffix = dataLakeFiles, + AzureKeyVaultDnsSuffix = kvDnsSuffix, + AzureKeyVaultServiceEndpointResourceId = kvResource, + GalleryUrl = gallery, + GraphUrl = graph, + GraphEndpointResourceId = graphResource, + ManagementPortalUrl = portal, + PublishSettingsFileUrl = publishSettings, + ResourceManagerUrl = resourceManager, + ServiceManagementUrl = serviceManagement, + SqlDatabaseDnsSuffix = sqlSuffix, + StorageEndpointSuffix = storageSuffix, + TrafficManagerDnsSuffix = trafficManagerSuffix + }; + var azEnvironment = (AzureEnvironment) environment; + Assert.NotNull(environment); + CheckEndpoint(AzureEnvironment.Endpoint.ActiveDirectory, azEnvironment, + environment.ActiveDirectoryAuthority); + CheckEndpoint(AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, + azEnvironment, environment.ActiveDirectoryServiceEndpointResourceId); + CheckEndpoint(AzureEnvironment.Endpoint.AdTenant, azEnvironment, + environment.AdTenant); + CheckEndpoint(AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, azEnvironment, + environment.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, azEnvironment, + environment.AzureDataLakeStoreFileSystemEndpointSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, azEnvironment, + environment.AzureKeyVaultDnsSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, azEnvironment, + environment.AzureKeyVaultServiceEndpointResourceId); + CheckEndpoint(AzureEnvironment.Endpoint.Gallery, azEnvironment, + environment.GalleryUrl); + CheckEndpoint(AzureEnvironment.Endpoint.Graph, azEnvironment, + environment.GraphUrl); + CheckEndpoint(AzureEnvironment.Endpoint.GraphEndpointResourceId, azEnvironment, + environment.GraphEndpointResourceId); + CheckEndpoint(AzureEnvironment.Endpoint.ManagementPortalUrl, azEnvironment, + environment.ManagementPortalUrl); + CheckEndpoint(AzureEnvironment.Endpoint.PublishSettingsFileUrl, azEnvironment, + environment.PublishSettingsFileUrl); + CheckEndpoint(AzureEnvironment.Endpoint.ResourceManager, azEnvironment, + environment.ResourceManagerUrl); + CheckEndpoint(AzureEnvironment.Endpoint.ServiceManagement, azEnvironment, + environment.ServiceManagementUrl); + CheckEndpoint(AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, azEnvironment, + environment.SqlDatabaseDnsSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.StorageEndpointSuffix, azEnvironment, + environment.StorageEndpointSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, azEnvironment, + environment.TrafficManagerDnsSuffix); + Assert.Equal(azEnvironment.Name, environment.Name); + Assert.Equal(azEnvironment.OnPremise, environment.EnableAdfsAuthentication); + } + + + private AzureEnvironment CreateEnvironment(string name, bool onPremise, string activeDirectory, string serviceResource, + string adTenant, string dataLakeJobs, string dataLakeFiles, string kvDnsSuffix, + string kvResource, string gallery, string graph, string graphResource, string portal, + string publishSettings, string resourceManager, string serviceManagement, + string sqlSuffix, string storageSuffix, string trafficManagerSuffix) + { + var environment = new AzureEnvironment() {Name = name, OnPremise = onPremise}; + SetEndpoint(AzureEnvironment.Endpoint.ActiveDirectory, environment, activeDirectory); + CheckEndpoint(AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId, + environment, serviceResource); + CheckEndpoint(AzureEnvironment.Endpoint.AdTenant, environment, adTenant); + CheckEndpoint( + AzureEnvironment.Endpoint.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix, + environment, + dataLakeJobs); + CheckEndpoint(AzureEnvironment.Endpoint.AzureDataLakeStoreFileSystemEndpointSuffix, + environment, + dataLakeFiles); + CheckEndpoint(AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix, environment, + kvDnsSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId, + environment, + kvResource); + CheckEndpoint(AzureEnvironment.Endpoint.Gallery, environment, gallery); + CheckEndpoint(AzureEnvironment.Endpoint.Graph, environment,graph); + CheckEndpoint(AzureEnvironment.Endpoint.GraphEndpointResourceId, environment, + graphResource); + CheckEndpoint(AzureEnvironment.Endpoint.ManagementPortalUrl, environment, portal); + CheckEndpoint(AzureEnvironment.Endpoint.PublishSettingsFileUrl, environment, + publishSettings); + CheckEndpoint(AzureEnvironment.Endpoint.ResourceManager, environment, + resourceManager); + CheckEndpoint(AzureEnvironment.Endpoint.ServiceManagement, environment, + serviceManagement); + CheckEndpoint(AzureEnvironment.Endpoint.SqlDatabaseDnsSuffix, environment, + sqlSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.StorageEndpointSuffix, environment, + storageSuffix); + CheckEndpoint(AzureEnvironment.Endpoint.TrafficManagerDnsSuffix, environment, + trafficManagerSuffix); + + return environment; + + } + + private void SetEndpoint(AzureEnvironment.Endpoint endpoint, AzureEnvironment environment, string endpointValue) + { + if (!environment.IsEndpointSet(endpoint) && !string.IsNullOrEmpty(endpointValue)) + { + environment.Endpoints[endpoint] = endpointValue; + } + } + private void CheckEndpoint(AzureEnvironment.Endpoint endpoint, AzureEnvironment environment, string valueToCheck) + { + if (environment.IsEndpointSet(endpoint)) + { + Assert.Equal(environment.GetEndpoint(endpoint), valueToCheck); + } + } + [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void CanConvertNullAzureSubscriptions() - { + { Assert.Null((PSAzureSubscription)null); var subscription = (PSAzureSubscription) (new AzureSubscription()); Assert.NotNull(subscription); @@ -174,7 +422,7 @@ public void CanConvertValidAzureAccounts(string id, AzureAccount.AccountType typ var account = (PSAzureRmAccount) oldAccount; Assert.Equal(oldAccount.Type.ToString(), account.AccountType); Assert.Equal(oldAccount.Id, account.Id); - Assert.DoesNotThrow(() => account.ToString()); + var accountString = account.ToString(); } [Fact] diff --git a/src/ResourceManager/Profile/Commands.Profile.Test/packages.config b/src/ResourceManager/Profile/Commands.Profile.Test/packages.config index 673778ff6b1f..160cdf0b169a 100644 --- a/src/ResourceManager/Profile/Commands.Profile.Test/packages.config +++ b/src/ResourceManager/Profile/Commands.Profile.Test/packages.config @@ -2,12 +2,11 @@ - - - + + @@ -16,17 +15,21 @@ - - + + - + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Profile/Commands.Profile/Account/AddAzureRmAccount.cs b/src/ResourceManager/Profile/Commands.Profile/Account/AddAzureRmAccount.cs index 0438f626fee6..38fd34222fa9 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Account/AddAzureRmAccount.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Account/AddAzureRmAccount.cs @@ -16,12 +16,12 @@ using System.Management.Automation; using System.Reflection; using System.Security; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.Azure.Commands.ResourceManager.Common; -using Microsoft.Azure.Common.Authentication; using Microsoft.WindowsAzure.Commands.Common; using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Properties; namespace Microsoft.Azure.Commands.Profile @@ -116,7 +116,7 @@ protected override void BeginProcessing() base.BeginProcessing(); if (Environment == null && EnvironmentName == null) { - Environment = AzureEnvironment.PublicEnvironments[Microsoft.Azure.Common.Authentication.Models.EnvironmentName.AzureCloud]; + Environment = AzureEnvironment.PublicEnvironments[Common.Authentication.Models.EnvironmentName.AzureCloud]; } else if (Environment == null && EnvironmentName != null) { diff --git a/src/ResourceManager/Profile/Commands.Profile/Commands.Profile.csproj b/src/ResourceManager/Profile/Commands.Profile/Commands.Profile.csproj index 4b17e0a0f2fe..c405a5ba5d0a 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Commands.Profile.csproj +++ b/src/ResourceManager/Profile/Commands.Profile/Commands.Profile.csproj @@ -53,10 +53,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -66,6 +62,7 @@ + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True @@ -74,12 +71,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -187,6 +184,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Profile/Commands.Profile/Context/SetAzureRMContext.cs b/src/ResourceManager/Profile/Commands.Profile/Context/SetAzureRMContext.cs index b3479e084e3d..ad69a70c9bbc 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Context/SetAzureRMContext.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Context/SetAzureRMContext.cs @@ -12,15 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using System.Collections.Generic; using System.Management.Automation; -using System.Linq; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.Azure.Commands.Profile.Properties; using System; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Profile { diff --git a/src/ResourceManager/Profile/Commands.Profile/Environment/AddAzureRMEnvironment.cs b/src/ResourceManager/Profile/Commands.Profile/Environment/AddAzureRMEnvironment.cs index 1dc61b3b9a81..052d361c2ca7 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Environment/AddAzureRMEnvironment.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Environment/AddAzureRMEnvironment.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.WindowsAzure.Commands.Common; diff --git a/src/ResourceManager/Profile/Commands.Profile/Environment/SetAzureRMEnvironment.cs b/src/ResourceManager/Profile/Commands.Profile/Environment/SetAzureRMEnvironment.cs index b2a83c83de6b..c8abb83f1504 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Environment/SetAzureRMEnvironment.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Environment/SetAzureRMEnvironment.cs @@ -15,7 +15,7 @@ using System; using System.Globalization; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.WindowsAzure.Commands.Common; diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/ModelExtensions.cs b/src/ResourceManager/Profile/Commands.Profile/Models/ModelExtensions.cs index 2d94ac29923e..a2c3041e0790 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/ModelExtensions.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/ModelExtensions.cs @@ -14,9 +14,8 @@ using System; using System.Collections.Generic; -using System.Linq; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Subscriptions.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureContext.cs b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureContext.cs index 3f16dc9f0f7f..29f14ca96a6f 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureContext.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureContext.cs @@ -1,10 +1,18 @@ -using System; -using System.CodeDom; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Profile.Models { diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureEnvironment.cs b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureEnvironment.cs index 3ee09a89363d..7d7e2603aac8 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureEnvironment.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureEnvironment.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Profile.Models { @@ -54,12 +54,14 @@ public static implicit operator AzureEnvironment(PSAzureEnvironment environment) newEnvironment.Endpoints[AzureEnvironment.Endpoint.StorageEndpointSuffix] = environment.StorageEndpointSuffix; newEnvironment.Endpoints[AzureEnvironment.Endpoint.Graph] = environment.GraphUrl; + newEnvironment.Endpoints[AzureEnvironment.Endpoint.GraphEndpointResourceId] = environment.GraphEndpointResourceId; newEnvironment.Endpoints[AzureEnvironment.Endpoint.TrafficManagerDnsSuffix] = environment.TrafficManagerDnsSuffix; newEnvironment.Endpoints[AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix] = environment.AzureKeyVaultDnsSuffix; newEnvironment.Endpoints[AzureEnvironment.Endpoint.AzureKeyVaultServiceEndpointResourceId] = environment.AzureKeyVaultServiceEndpointResourceId; + return newEnvironment; } @@ -147,6 +149,11 @@ public PSAzureEnvironment(AzureEnvironment environment) GraphUrl = environment.Endpoints[AzureEnvironment.Endpoint.Graph]; } + if (environment.IsEndpointSet(AzureEnvironment.Endpoint.GraphEndpointResourceId)) + { + GraphEndpointResourceId = + environment.Endpoints[AzureEnvironment.Endpoint.GraphEndpointResourceId]; + } if (environment.IsEndpointSet(AzureEnvironment.Endpoint.TrafficManagerDnsSuffix)) { TrafficManagerDnsSuffix = @@ -180,7 +187,7 @@ public PSAzureEnvironment(AzureEnvironment environment) public string Name { get; set; } /// - /// Gets or sets a value indicating whther ADFS authentication should be allowed . + /// Gets or sets a value indicating whether ADFS authentication should be allowed . /// Generally, this is only used in Azure Stack environments. /// public bool EnableAdfsAuthentication { get; set; } @@ -240,6 +247,11 @@ public PSAzureEnvironment(AzureEnvironment environment) /// public string GraphUrl { get; set; } + /// + /// Gets or sets the resource Id to use for contacting the Graph endpoint + /// + public string GraphEndpointResourceId { get; set; } + /// /// Gets or sets the domain name suffix for traffig manager services. /// diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureProfile.cs b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureProfile.cs index f8e6ab2e3088..941e362bdbec 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureProfile.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureProfile.cs @@ -1,10 +1,19 @@ -using System; -using System.CodeDom; +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.Azure.Commands.Profile.Models diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureRmAccount.cs b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureRmAccount.cs index d75ab0a17ce3..38eae3f91eba 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureRmAccount.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureRmAccount.cs @@ -14,10 +14,8 @@ using System; using System.Linq; -using System.Configuration; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication.Utilities; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Profile.Models { diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureSubscription.cs b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureSubscription.cs index 0092864f16fe..d598f7d70a05 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureSubscription.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureSubscription.cs @@ -13,9 +13,8 @@ // ---------------------------------------------------------------------------------- using System; -using System.Configuration; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication.Utilities; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Utilities; namespace Microsoft.Azure.Commands.Profile.Models { diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureTenant.cs b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureTenant.cs index 7fff1f875baf..cf6dbef47645 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureTenant.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/PSAzureTenant.cs @@ -13,9 +13,7 @@ // ---------------------------------------------------------------------------------- using System; -using System.Configuration; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication.Utilities; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Profile.Models { diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/RMProfileClient.cs b/src/ResourceManager/Profile/Commands.Profile/Models/RMProfileClient.cs index 5d9d49006e81..9330d4fba078 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/RMProfileClient.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/RMProfileClient.cs @@ -13,19 +13,18 @@ // ---------------------------------------------------------------------------------- using Hyak.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Factories; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication.Properties; using Microsoft.Azure.Subscriptions; using Microsoft.IdentityModel.Clients.ActiveDirectory; using System; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using System.Management.Automation; using System.Security; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; +using Microsoft.Azure.Commands.Common.Authentication.Properties; namespace Microsoft.Azure.Commands.ResourceManager.Common diff --git a/src/ResourceManager/Profile/Commands.Profile/Models/SimpleAccessToken.cs b/src/ResourceManager/Profile/Commands.Profile/Models/SimpleAccessToken.cs index 6872c3c0b6f7..683a480d0fd5 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Models/SimpleAccessToken.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Models/SimpleAccessToken.cs @@ -13,9 +13,9 @@ // ---------------------------------------------------------------------------------- using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Properties; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Profile.Models { diff --git a/src/ResourceManager/Profile/Commands.Profile/Profile/SaveAzureRMProfile.cs b/src/ResourceManager/Profile/Commands.Profile/Profile/SaveAzureRMProfile.cs index 28283caa57f2..dac739bf3e7f 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Profile/SaveAzureRMProfile.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Profile/SaveAzureRMProfile.cs @@ -14,7 +14,7 @@ using System; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.Azure.Commands.Profile.Properties; using Microsoft.Azure.Commands.ResourceManager.Common; diff --git a/src/ResourceManager/Profile/Commands.Profile/Profile/SelectAzureRMProfile.cs b/src/ResourceManager/Profile/Commands.Profile/Profile/SelectAzureRMProfile.cs index 0b08ec0474c7..e3b7fc5f598e 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Profile/SelectAzureRMProfile.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Profile/SelectAzureRMProfile.cs @@ -14,7 +14,7 @@ using System; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.Azure.Commands.Profile.Properties; using Microsoft.Azure.Commands.ResourceManager.Common; diff --git a/src/ResourceManager/Profile/Commands.Profile/Subscription/GetAzureRMSubscription.cs b/src/ResourceManager/Profile/Commands.Profile/Subscription/GetAzureRMSubscription.cs index d49384b0613f..5209e2e0d306 100644 --- a/src/ResourceManager/Profile/Commands.Profile/Subscription/GetAzureRMSubscription.cs +++ b/src/ResourceManager/Profile/Commands.Profile/Subscription/GetAzureRMSubscription.cs @@ -13,13 +13,13 @@ using System.Linq; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Commands.Profile.Models; using Microsoft.Azure.Commands.Profile.Properties; using Microsoft.Azure.Commands.ResourceManager.Common; using System.Collections.Generic; using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; namespace Microsoft.Azure.Commands.Profile diff --git a/src/ResourceManager/Profile/Commands.Profile/packages.config b/src/ResourceManager/Profile/Commands.Profile/packages.config index f050b8000b55..2fd6ccc443c1 100644 --- a/src/ResourceManager/Profile/Commands.Profile/packages.config +++ b/src/ResourceManager/Profile/Commands.Profile/packages.config @@ -2,7 +2,6 @@ - @@ -10,8 +9,8 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/Profile/Profile.sln b/src/ResourceManager/Profile/Profile.sln index cc10e831f679..f72eea717f79 100644 --- a/src/ResourceManager/Profile/Profile.sln +++ b/src/ResourceManager/Profile/Profile.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{95C16AED-FD57-42A0-86C3-2CF4300A4817}" EndProject @@ -14,10 +14,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.Reso EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{DB56CF72-D058-4B6F-8BD7-C482D06815D1}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.Common", "..\..\Common\Commands.ScenarioTests.Common\Commands.ScenarioTests.Common.csproj", "{C1BDA476-A5CC-4394-914D-48B0EC31A710}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ServiceManagement.Common", "..\..\ServiceManagement\Common\Commands.ServiceManagement.Common\Commands.ServiceManagement.Common.csproj", "{CFF09E81-1E31-444E-B4D4-A21E946C29E2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication.Test", "..\..\Common\Commands.Common.Authentication.Test\Commands.Common.Authentication.Test.csproj", "{C2CF99A2-D35E-4AED-AFB9-C26960AF1D0D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -45,6 +48,22 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU + {C1BDA476-A5CC-4394-914D-48B0EC31A710}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1BDA476-A5CC-4394-914D-48B0EC31A710}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1BDA476-A5CC-4394-914D-48B0EC31A710}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1BDA476-A5CC-4394-914D-48B0EC31A710}.Release|Any CPU.Build.0 = Release|Any CPU + {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Release|Any CPU.Build.0 = Release|Any CPU + {C2CF99A2-D35E-4AED-AFB9-C26960AF1D0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2CF99A2-D35E-4AED-AFB9-C26960AF1D0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2CF99A2-D35E-4AED-AFB9-C26960AF1D0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2CF99A2-D35E-4AED-AFB9-C26960AF1D0D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -52,5 +71,8 @@ Global GlobalSection(NestedProjects) = preSolution {152D78F0-A642-4D0E-B3A8-2FC64FFA9714} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {3436A126-EDC9-4060-8952-9A1BE34CDD95} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} + {C1BDA476-A5CC-4394-914D-48B0EC31A710} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} + {CFF09E81-1E31-444E-B4D4-A21E946C29E2} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} + {C2CF99A2-D35E-4AED-AFB9-C26960AF1D0D} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} EndGlobalSection EndGlobal diff --git a/src/ResourceManager/RecoveryServices/.nuget/packages.config b/src/ResourceManager/RecoveryServices/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/RecoveryServices/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj index b611580eb0f8..58c08afdb20f 100644 --- a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj +++ b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj @@ -1,6 +1,6 @@  - + Debug @@ -14,7 +14,8 @@ 512 ..\..\..\ true - 0df6d68c + + true @@ -34,10 +35,6 @@ 4 - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Hyak.Common.1.0.3\lib\portable-net403+win+wpa81\Hyak.Common.dll @@ -55,14 +52,14 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll True False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -73,14 +70,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.9.3\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -120,12 +115,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.assert.2.1.0\lib\dotnet\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\dotnet\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -144,6 +147,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs index 2a8198936a63..c32c94bc0e5f 100644 --- a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs +++ b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs @@ -22,9 +22,9 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.Azure.Management.RecoveryServices; using Microsoft.Azure.Test; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using System; using System.Net.Http; using System.Reflection; diff --git a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/packages.config b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/packages.config index b4e0f2f7bb03..3885d59fcc67 100644 --- a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/packages.config +++ b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices.Test/packages.config @@ -2,22 +2,25 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServices.csproj b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServices.csproj index a9536cbf6d4b..08ee7778ff6b 100644 --- a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServices.csproj +++ b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServices.csproj @@ -43,10 +43,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -63,12 +59,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -150,6 +146,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Common/PSRecoveryServicesClient.cs b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Common/PSRecoveryServicesClient.cs index ff3fe03ae1ec..cb40ca24b3d4 100644 --- a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Common/PSRecoveryServicesClient.cs +++ b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Common/PSRecoveryServicesClient.cs @@ -22,8 +22,8 @@ using System.Text; using System.Web.Script.Serialization; using System.Xml; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.RecoveryServices; using Microsoft.Azure.Management.RecoveryServices.Models; using Microsoft.Azure.Portal.RecoveryServices.Models.Common; diff --git a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Vault/GetAzureRMRecoveryServicesVaultSettingsFile.cs b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Vault/GetAzureRMRecoveryServicesVaultSettingsFile.cs index 2c952368f686..dc6008a06fba 100644 --- a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Vault/GetAzureRMRecoveryServicesVaultSettingsFile.cs +++ b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/Vault/GetAzureRMRecoveryServicesVaultSettingsFile.cs @@ -16,7 +16,7 @@ using System.Linq; using System.Management.Automation; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Portal.RecoveryServices.Models.Common; namespace Microsoft.Azure.Commands.RecoveryServices diff --git a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/packages.config b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/packages.config index 988638f65f1c..561a8495ffd2 100644 --- a/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/packages.config +++ b/src/ResourceManager/RecoveryServices/Commands.RecoveryServices/packages.config @@ -2,7 +2,6 @@ - @@ -10,7 +9,7 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/RecoveryServices/RecoveryServices.sln b/src/ResourceManager/RecoveryServices/RecoveryServices.sln index dd29e4c87884..cffb1826ee60 100644 --- a/src/ResourceManager/RecoveryServices/RecoveryServices.sln +++ b/src/ResourceManager/RecoveryServices/RecoveryServices.sln @@ -12,13 +12,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{5BA788C3-822D-453A-AABD-77D417D5A715}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.RecoveryServices.Test", "Commands.RecoveryServices.Test\Commands.RecoveryServices.Test.csproj", "{6C7D3D81-37AB-445E-8081-78A1FEC0A773}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -49,6 +46,10 @@ Global {6C7D3D81-37AB-445E-8081-78A1FEC0A773}.Debug|Any CPU.Build.0 = Debug|Any CPU {6C7D3D81-37AB-445E-8081-78A1FEC0A773}.Release|Any CPU.ActiveCfg = Release|Any CPU {6C7D3D81-37AB-445E-8081-78A1FEC0A773}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/RedisCache/.nuget/packages.config b/src/ResourceManager/RedisCache/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/RedisCache/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj index 1a1364e4e8c5..d12b7756e59e 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj +++ b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Commands.RedisCache.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\..\..\ true - 7d30c2c1 + 94efee6d true @@ -49,10 +50,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -70,11 +67,11 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -96,12 +93,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -164,12 +161,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -179,6 +184,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Properties/AssemblyInfo.cs index 8a5dc0f08d44..e7f719757389 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/Properties/AssemblyInfo.cs @@ -34,3 +34,4 @@ [assembly: AssemblyVersion("1.1.2")] [assembly: AssemblyFileVersion("1.1.2")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTestsBase.cs b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTestsBase.cs index 1417740f929e..d14be761f54d 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTestsBase.cs +++ b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/ScenarioTests/RedisCacheTestsBase.cs @@ -12,13 +12,14 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; + namespace Microsoft.Azure.Commands.RedisCache.Test.ScenarioTests { using System; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.Azure.Test; using Microsoft.Azure.Management.Redis; - using Microsoft.Azure.Common.Authentication; using WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.Azure.Management.Insights; using Microsoft.Azure.Management.Internal.Resources; diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/packages.config b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/packages.config index bb1e8a42c39a..10eedfdaa7de 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache.Test/packages.config +++ b/src/ResourceManager/RedisCache/Commands.RedisCache.Test/packages.config @@ -2,14 +2,13 @@ - - - + + @@ -18,15 +17,19 @@ - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache/Commands.RedisCache.csproj b/src/ResourceManager/RedisCache/Commands.RedisCache/Commands.RedisCache.csproj index 03d35a51a510..e3127c9728de 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache/Commands.RedisCache.csproj +++ b/src/ResourceManager/RedisCache/Commands.RedisCache/Commands.RedisCache.csproj @@ -52,10 +52,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -91,12 +87,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -195,6 +191,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache/Models/RedisCacheClient.cs b/src/ResourceManager/RedisCache/Commands.RedisCache/Models/RedisCacheClient.cs index 9d17b508de01..fff294c7cf41 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache/Models/RedisCacheClient.cs +++ b/src/ResourceManager/RedisCache/Commands.RedisCache/Models/RedisCacheClient.cs @@ -12,20 +12,21 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; + namespace Microsoft.Azure.Commands.RedisCache { using System.Collections; using System.Collections.Generic; using System.ComponentModel; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using ServiceManagemenet.Common; + using ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Insights; using Microsoft.Azure.Management.Insights.Models; using Microsoft.Azure.Management.Internal.Resources; using Microsoft.Azure.Management.Redis; using Microsoft.Azure.Management.Redis.Models; - using Microsoft.WindowsAzure; - using Microsoft.WindowsAzure.Commands.Common; public class RedisCacheClient { diff --git a/src/ResourceManager/RedisCache/Commands.RedisCache/packages.config b/src/ResourceManager/RedisCache/Commands.RedisCache/packages.config index 0d6be3f88d9e..5c6e623bcb5e 100644 --- a/src/ResourceManager/RedisCache/Commands.RedisCache/packages.config +++ b/src/ResourceManager/RedisCache/Commands.RedisCache/packages.config @@ -2,7 +2,6 @@ - @@ -16,8 +15,8 @@ - - + + diff --git a/src/ResourceManager/RedisCache/RedisCache.sln b/src/ResourceManager/RedisCache/RedisCache.sln index 80d410393a71..9810ed258034 100644 --- a/src/ResourceManager/RedisCache/RedisCache.sln +++ b/src/ResourceManager/RedisCache/RedisCache.sln @@ -16,10 +16,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.Reso EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{73CD233D-7CEC-4BBE-8BA4-1BB83627BD61}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -51,6 +48,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Resources/.nuget/packages.config b/src/ResourceManager/Resources/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Resources/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Commands.Resources.Rest.csproj b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Commands.Resources.Rest.csproj index 79b1059a1dd0..a0f9d9db6781 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Commands.Resources.Rest.csproj +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Commands.Resources.Rest.csproj @@ -54,10 +54,7 @@ False ..\..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - + ..\..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True @@ -66,12 +63,12 @@ ..\..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -86,6 +83,7 @@ + @@ -192,6 +190,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/ApiVersionHelper.cs b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/ApiVersionHelper.cs index 2f8bc6a02508..b58e78923081 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/ApiVersionHelper.cs +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/ApiVersionHelper.cs @@ -12,6 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication.Models; + namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components { using System; @@ -20,10 +22,8 @@ namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components using System.Runtime.Caching; using System.Threading; using System.Threading.Tasks; - using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions; - using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Providers; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using Extensions; + using Entities.Providers; using System.Collections.Generic; /// diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/ResourceManagerClientHelper.cs b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/ResourceManagerClientHelper.cs index 03bf6143615a..101a0de7690d 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/ResourceManagerClientHelper.cs +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Components/ResourceManagerClientHelper.cs @@ -12,13 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; + namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components { using System; - using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.RestClients; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; using System.Collections.Generic; /// diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Extensions/ResourceExtensions.cs b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Extensions/ResourceExtensions.cs index e8b9a7797aa1..338ad8ae6d56 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Extensions/ResourceExtensions.cs +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Extensions/ResourceExtensions.cs @@ -19,7 +19,7 @@ namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions using System.Management.Automation; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Resources; - using Microsoft.Azure.Common.Authentication; + using ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json.Linq; diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/NewAzurePolicyAssignment.cs b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/NewAzurePolicyAssignment.cs index 1f6fe448a2f1..462cb1e8d861 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/NewAzurePolicyAssignment.cs +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/NewAzurePolicyAssignment.cs @@ -20,7 +20,7 @@ namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Resources; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions; - using Microsoft.Azure.Common.Authentication; + using ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json.Linq; diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/NewAzurePolicyDefinition.cs b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/NewAzurePolicyDefinition.cs index 80cc1c35e683..7ab1e0b730b5 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/NewAzurePolicyDefinition.cs +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/NewAzurePolicyDefinition.cs @@ -12,6 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; + namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation { using System.IO; @@ -20,7 +22,6 @@ namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Resources; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions; - using Microsoft.Azure.Common.Authentication; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json.Linq; diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/SetAzurePolicyAssignment.cs b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/SetAzurePolicyAssignment.cs index eb16de99d3d4..6f048287165d 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/SetAzurePolicyAssignment.cs +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/SetAzurePolicyAssignment.cs @@ -20,7 +20,7 @@ namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions; - using Microsoft.Azure.Common.Authentication; + using ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json.Linq; diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/SetAzurePolicyDefinition.cs b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/SetAzurePolicyDefinition.cs index ed58a246aa05..24fc04f2722d 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/SetAzurePolicyDefinition.cs +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/Policy/SetAzurePolicyDefinition.cs @@ -12,6 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; + namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation { using System.IO; @@ -20,7 +22,6 @@ namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Entities.Policy; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions; - using Microsoft.Azure.Common.Authentication; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json.Linq; diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/ResourceManagerCmdletBase.cs b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/ResourceManagerCmdletBase.cs index 316f7f3e96e6..f22aa0dcc7dc 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/ResourceManagerCmdletBase.cs +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/Implementation/ResourceManagerCmdletBase.cs @@ -12,6 +12,9 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; + namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation { using System; @@ -26,8 +29,6 @@ namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.RestClients; using Common; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; using Newtonsoft.Json.Linq; using System.Collections.Generic; diff --git a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/packages.config b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/packages.config index 1510305a0e35..12e09556906c 100644 --- a/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/packages.config +++ b/src/ResourceManager/Resources/Commands.ResourceManager/Cmdlets/packages.config @@ -2,15 +2,14 @@ - - - + + \ No newline at end of file diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj index 9956ad8d269c..6cc721ced550 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj +++ b/src/ResourceManager/Resources/Commands.Resources.Test/Commands.Resources.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ ..\..\..\ true {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 431dced7 + 7d08e8e3 true @@ -50,10 +51,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -78,10 +75,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -103,12 +100,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -168,12 +165,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -223,6 +228,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/GalleryTemplatesClientTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/GalleryTemplatesClientTests.cs index 46504497e430..e1790937adc2 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/GalleryTemplatesClientTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/GalleryTemplatesClientTests.cs @@ -28,6 +28,7 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Moq; using Xunit; +using System; namespace Microsoft.Azure.Commands.Resources.Test.Models { @@ -37,13 +38,13 @@ public class GalleryTemplatesClientTests : RMTestBase private Mock galleryClientMock; - private string templateFile = @"Resources\sampleTemplateFile.json"; + private string templateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\sampleTemplateFile.json"); - private string invalidTemplateFile = @"Resources\invalidTemplateFile.json"; + private string invalidTemplateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\invalidTemplateFile.json"); - private string templateParameterFileSchema1 = @"Resources\sampleTemplateParameterFile.json"; + private string templateParameterFileSchema1 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\sampleTemplateParameterFile.json"); - private string templateParameterFileSchema2 = @"Resources\sampleTemplateParameterFileSchema2.json"; + private string templateParameterFileSchema2 = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\sampleTemplateParameterFileSchema2.json"); public GalleryTemplatesClientTests() { diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/ResourceClientTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/ResourceClientTests.cs index d9337fe144bd..fe68c011da72 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/ResourceClientTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/Models.ResourceGroups/ResourceClientTests.cs @@ -23,8 +23,9 @@ using System.Threading; using System.Threading.Tasks; using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.Resources.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Resources.Models; @@ -34,6 +35,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Xunit; +using System.IO; namespace Microsoft.Azure.Commands.Resources.Test.Models { @@ -69,7 +71,7 @@ public class ResourceClientTests : RMTestBase private string deploymentName = "fooDeployment"; - private string templateFile = @"Resources\sampleTemplateFile.json"; + private string templateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\sampleTemplateFile.json"); private string storageAccountName = "myStorageAccount"; diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Resources/Commands.Resources.Test/Properties/AssemblyInfo.cs index 3ec000b7a648..36bd1571037b 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -33,3 +34,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroupDeployments/NewAzureResourceGroupDeploymentCommandTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroupDeployments/NewAzureResourceGroupDeploymentCommandTests.cs index 3f0f8b515afa..b2536c95f088 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroupDeployments/NewAzureResourceGroupDeploymentCommandTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroupDeployments/NewAzureResourceGroupDeploymentCommandTests.cs @@ -21,6 +21,7 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Moq; using Xunit; +using System.IO; namespace Microsoft.Azure.Commands.Resources.Test { @@ -36,7 +37,7 @@ public class NewAzureResourceGroupDeploymentCommandTests : RMTestBase private string deploymentName = "fooDeployment"; - private string templateFile = @"Resources\sampleTemplateFile.json"; + private string templateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\sampleTemplateFile.json"); private string storageAccountName = "myStorageAccount"; diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroupDeployments/TestAzureResourceGroupDeploymentCommandTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroupDeployments/TestAzureResourceGroupDeploymentCommandTests.cs index b752368947ad..311f5a161dd0 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroupDeployments/TestAzureResourceGroupDeploymentCommandTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroupDeployments/TestAzureResourceGroupDeploymentCommandTests.cs @@ -20,6 +20,8 @@ using Moq; using Xunit; using Microsoft.WindowsAzure.Commands.ScenarioTest; +using System.IO; +using System; namespace Microsoft.Azure.Commands.Resources.Test.Resources { @@ -33,7 +35,7 @@ public class TestAzureResourceGroupDeploymentCommandTests private string resourceGroupName = "myResourceGroup"; - private string templateFile = @"Resources\sampleTemplateFile.json"; + private string templateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\sampleTemplateFile.json"); public TestAzureResourceGroupDeploymentCommandTests() { diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroups/NewAzureResourceGroupCommandTests.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroups/NewAzureResourceGroupCommandTests.cs index 3c1061257087..e58cd648218d 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroups/NewAzureResourceGroupCommandTests.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ResourceGroups/NewAzureResourceGroupCommandTests.cs @@ -20,6 +20,8 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Moq; using Xunit; +using System.IO; +using System; namespace Microsoft.Azure.Commands.Resources.Test { @@ -37,7 +39,7 @@ public class NewAzureResourceGroupCommandTests : RMTestBase private string deploymentName = "fooDeployment"; - private string templateFile = @"Resources\sampleTemplateFile.json"; + private string templateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\sampleTemplateFile.json"); private Hashtable[] tags; diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/PolicyTests.ps1 b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/PolicyTests.ps1 index 9241d43a1148..567570efc8f5 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/PolicyTests.ps1 +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/PolicyTests.ps1 @@ -22,7 +22,7 @@ function Test-PolicyDefinitionCRUD $policyName = Get-ResourceName # Test - $actual = New-AzureRMPolicyDefinition -Name $policyName -Policy SamplePolicyDefinition.json + $actual = New-AzureRMPolicyDefinition -Name $policyName -Policy "$TestOutputRoot\SamplePolicyDefinition.json" $expected = Get-AzureRMPolicyDefinition -Name $policyName Assert-AreEqual $expected.Name $actual.Name Assert-AreEqual $expected.PolicyDefinitionId $actual.PolicyDefinitionId @@ -54,7 +54,7 @@ function Test-PolicyAssignmentCRUD # Test $rg = New-AzureRMResourceGroup -Name $rgname -Location "west us" - $policy = New-AzureRMPolicyDefinition -Name $policyName -Policy SamplePolicyDefinition.json + $policy = New-AzureRMPolicyDefinition -Name $policyName -Policy "$TestOutputRoot\SamplePolicyDefinition.json" $actual = New-AzureRMPolicyAssignment -Name testPA -PolicyDefinition $policy -Scope $rg.ResourceId $expected = Get-AzureRMPolicyAssignment -Name testPA -Scope $rg.ResourceId diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs index de07758fcda9..738aac324ff1 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs +++ b/src/ResourceManager/Resources/Commands.Resources.Test/ScenarioTests/ResourcesController.cs @@ -17,9 +17,10 @@ using System.Linq; using System.Net.Http; using System.Net.Http.Headers; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Gallery; using Microsoft.Azure.Graph.RBAC; using Microsoft.Azure.Insights; diff --git a/src/ResourceManager/Resources/Commands.Resources.Test/packages.config b/src/ResourceManager/Resources/Commands.Resources.Test/packages.config index 1525052f568a..6537258f3d0c 100644 --- a/src/ResourceManager/Resources/Commands.Resources.Test/packages.config +++ b/src/ResourceManager/Resources/Commands.Resources.Test/packages.config @@ -2,7 +2,6 @@ - @@ -10,8 +9,8 @@ - - + + @@ -20,14 +19,18 @@ - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Resources/Commands.Resources/Commands.Resources.csproj b/src/ResourceManager/Resources/Commands.Resources/Commands.Resources.csproj index f4843189ce2b..d83520f6dbf5 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Commands.Resources.csproj +++ b/src/ResourceManager/Resources/Commands.Resources/Commands.Resources.csproj @@ -54,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -84,12 +80,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -237,6 +233,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ActiveDirectory/ActiveDirectoryClient.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ActiveDirectory/ActiveDirectoryClient.cs index 5408509c705a..87fc473d62dd 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ActiveDirectory/ActiveDirectoryClient.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ActiveDirectory/ActiveDirectoryClient.cs @@ -13,8 +13,6 @@ // ---------------------------------------------------------------------------------- using Hyak.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Graph.RBAC; using Microsoft.Azure.Graph.RBAC.Models; using System; @@ -22,6 +20,8 @@ using System.Diagnostics; using System.Linq; using System.Net; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; namespace Microsoft.Azure.Commands.Resources.Models.ActiveDirectory diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.Authorization/AuthorizationClient.cs b/src/ResourceManager/Resources/Commands.Resources/Models.Authorization/AuthorizationClient.cs index af38ebe0a8a2..3d154ef171d9 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.Authorization/AuthorizationClient.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.Authorization/AuthorizationClient.cs @@ -17,9 +17,9 @@ using System.Collections.Generic; using System.Linq; using System.Net; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Resources.Models.ActiveDirectory; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Authorization.Models; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ProviderFeatures/ProviderFeatureClient.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ProviderFeatures/ProviderFeatureClient.cs index fa50de42c489..a25346b64486 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ProviderFeatures/ProviderFeatureClient.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ProviderFeatures/ProviderFeatureClient.cs @@ -12,13 +12,14 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; + namespace Microsoft.Azure.Commands.Resources.Models.ProviderFeatures { using System; using System.Collections.Generic; using System.Linq; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Resources.Models; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/GalleryTemplatesClient.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/GalleryTemplatesClient.cs index 51043c6f6dfd..7eef9a008eb6 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/GalleryTemplatesClient.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/GalleryTemplatesClient.cs @@ -24,14 +24,12 @@ using System.Text.RegularExpressions; using Microsoft.Azure.Gallery; using Microsoft.Azure.Gallery.Models; -using Microsoft.WindowsAzure; -using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; -using Microsoft.Azure.Common.Authentication; using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Common.OData; namespace Microsoft.Azure.Commands.Resources.Models diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.cs index 492544706179..03f700dccda0 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceClient.cs @@ -25,8 +25,6 @@ using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Components; using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Utilities; using Microsoft.Azure.Commands.Tags.Model; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Authorization.Models; using Microsoft.Azure.Management.Resources; @@ -36,6 +34,8 @@ using Newtonsoft.Json; using ProjectResources = Microsoft.Azure.Commands.Resources.Properties.Resources; using System.Net; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Resources.Models { @@ -321,7 +321,7 @@ private DeploymentExtended WaitDeploymentStatus( } deployment = ResourceManagementClient.Deployments.Get(resourceGroup, deploymentName).Deployment; - Thread.Sleep(2000); + TestMockSupport.Delay(2000); } while (!status.Any(s => s.Equals(deployment.Properties.ProvisioningState, StringComparison.OrdinalIgnoreCase))); diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceWithParameterBaseCmdlet.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceWithParameterBaseCmdlet.cs index e73980332c26..3461094a64db 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceWithParameterBaseCmdlet.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourceWithParameterBaseCmdlet.cs @@ -22,8 +22,9 @@ using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Commands.Resources.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.Resources { diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesBaseCmdlet.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesBaseCmdlet.cs index 22436c6d34da..24ff69883c71 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesBaseCmdlet.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesBaseCmdlet.cs @@ -13,8 +13,8 @@ // ---------------------------------------------------------------------------------- using System.IO; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Resources.Models { diff --git a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesExtensions.cs b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesExtensions.cs index db970532816a..3fcdda06deb4 100644 --- a/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesExtensions.cs +++ b/src/ResourceManager/Resources/Commands.Resources/Models.ResourceGroups/ResourcesExtensions.cs @@ -18,6 +18,7 @@ using System.Linq; using System.Reflection; using System.Text; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.Tags.Model; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Resources.Models; @@ -25,7 +26,6 @@ using Newtonsoft.Json; using Microsoft.Azure.Commands.Resources.Models.Authorization; using Microsoft.Azure.Management.Authorization.Models; -using Microsoft.Azure.Common.Authentication; namespace Microsoft.Azure.Commands.Resources.Models { diff --git a/src/ResourceManager/Resources/Commands.Resources/ResourceGroups/GetAzureResourceGroupCommand.cs b/src/ResourceManager/Resources/Commands.Resources/ResourceGroups/GetAzureResourceGroupCommand.cs index 1b231c816f60..bbe6978c5970 100644 --- a/src/ResourceManager/Resources/Commands.Resources/ResourceGroups/GetAzureResourceGroupCommand.cs +++ b/src/ResourceManager/Resources/Commands.Resources/ResourceGroups/GetAzureResourceGroupCommand.cs @@ -17,7 +17,7 @@ using System.IO; using System.Management.Automation; using System.Reflection; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.Resources { diff --git a/src/ResourceManager/Resources/Commands.Resources/packages.config b/src/ResourceManager/Resources/Commands.Resources/packages.config index 07c00e2d7901..390071d6f989 100644 --- a/src/ResourceManager/Resources/Commands.Resources/packages.config +++ b/src/ResourceManager/Resources/Commands.Resources/packages.config @@ -2,7 +2,6 @@ - @@ -13,8 +12,8 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/Resources/Resources.sln b/src/ResourceManager/Resources/Resources.sln index aad07e839e53..ac460597ba0b 100644 --- a/src/ResourceManager/Resources/Resources.sln +++ b/src/ResourceManager/Resources/Resources.sln @@ -20,10 +20,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{AC2CA92A-5715-44D6-B933-739F344E5F6F}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -63,6 +60,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/SiteRecovery/.nuget/packages.config b/src/ResourceManager/SiteRecovery/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/SiteRecovery/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/Commands.SiteRecovery.Test.csproj b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/Commands.SiteRecovery.Test.csproj index d05ef52db5ee..604178f37ada 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/Commands.SiteRecovery.Test.csproj +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/Commands.SiteRecovery.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -14,7 +15,7 @@ 512 ..\..\..\ true - 0df6d68c + a58e9cfa true @@ -34,10 +35,6 @@ 4 - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Hyak.Common.1.0.3\lib\portable-net403+win+wpa81\Hyak.Common.dll @@ -56,10 +53,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -69,14 +66,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -116,12 +111,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -158,6 +161,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/Properties/AssemblyInfo.cs index 94e034694b14..bd95f923af5b 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/Properties/AssemblyInfo.cs @@ -45,3 +45,4 @@ [assembly: AssemblyVersion("1.1.3")] [assembly: AssemblyFileVersion("1.1.3")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/ScenarioTests/SiteRecoveryTests.ps1 b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/ScenarioTests/SiteRecoveryTests.ps1 index 2d7474cc1131..935f8189f02d 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/ScenarioTests/SiteRecoveryTests.ps1 +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/ScenarioTests/SiteRecoveryTests.ps1 @@ -151,7 +151,7 @@ function WaitForJobCompletion $interval = 5; do { - Start-Sleep $interval + Wait-Seconds $interval $timeElapse = $timeElapse + $interval $job = Get-AzureRmSiteRecoveryJob -Name $JobId; } while((-not ($endStateDescription -ccontains $job.State)) -and ($timeElapse -lt $NumOfSecondsToWait)) diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/ScenarioTests/SiteRecoveryTestsBase.cs b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/ScenarioTests/SiteRecoveryTestsBase.cs index a35a199af046..bdbef6de6ed7 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/ScenarioTests/SiteRecoveryTestsBase.cs +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/ScenarioTests/SiteRecoveryTestsBase.cs @@ -23,11 +23,11 @@ using Microsoft.Azure.Management.RecoveryServices; using Microsoft.Azure.Management.SiteRecovery; using Microsoft.Azure.Test; -using Microsoft.Azure.Common.Authentication; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using System; using System.Net.Http; using System.Reflection; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.SiteRecovery.Test.ScenarioTests { @@ -40,10 +40,10 @@ public abstract class SiteRecoveryTestsBase : RMTestBase public SiteRecoveryManagementClient SiteRecoveryMgmtClient { get; private set; } public RecoveryServicesManagementClient RecoveryServicesMgmtClient { get; private set; } - + protected SiteRecoveryTestsBase() { - this.vaultSettingsFilePath = "ScenarioTests\\vaultSettings.VaultCredentials"; + this.vaultSettingsFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScenarioTests\\vaultSettings.VaultCredentials"); if (File.Exists(this.vaultSettingsFilePath)) { @@ -73,7 +73,9 @@ protected SiteRecoveryTestsBase() else { throw new FileNotFoundException( - "Vault settings file not found, please pass the file downloaded from portal"); + string.Format( + "Vault settings file not found at '{0}', please pass the file downloaded from portal", + this.vaultSettingsFilePath)); } helper = new EnvironmentSetupHelper(); diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/packages.config b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/packages.config index ad227c101eb8..9c7ed72efe34 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/packages.config +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery.Test/packages.config @@ -2,22 +2,25 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Commands.SiteRecovery.csproj b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Commands.SiteRecovery.csproj index 70799f80d2c8..de6cab1001c4 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Commands.SiteRecovery.csproj +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Commands.SiteRecovery.csproj @@ -43,10 +43,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -63,12 +59,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -199,6 +195,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Common/PSSiteRecoveryClient.cs b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Common/PSSiteRecoveryClient.cs index d6519926b927..bdfb6a0557b0 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Common/PSSiteRecoveryClient.cs +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Common/PSSiteRecoveryClient.cs @@ -19,23 +19,18 @@ using System.Net; using System.Runtime.Serialization; using System.Security.Cryptography; -using System.Security.Cryptography.X509Certificates; using System.Text; using System.Web.Script.Serialization; using System.Xml; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Management.RecoveryServices; using Microsoft.Azure.Management.RecoveryServices.Models; using Microsoft.Azure.Management.SiteRecovery; using Microsoft.Azure.Management.SiteRecovery.Models; using Microsoft.Azure.Portal.RecoveryServices.Models.Common; -using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Properties = Microsoft.Azure.Commands.SiteRecovery.Properties; using System.Configuration; -using System.Collections.Specialized; using System.Net.Security; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.SiteRecovery { diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Common/PSSiteRecoveryClientHelper.cs b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Common/PSSiteRecoveryClientHelper.cs index acbc0698444f..4df7589e30a9 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Common/PSSiteRecoveryClientHelper.cs +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Common/PSSiteRecoveryClientHelper.cs @@ -14,8 +14,8 @@ using System; using System.Collections.Generic; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.SiteRecovery; using Microsoft.Azure.Management.SiteRecovery.Models; using Microsoft.WindowsAzure.Commands.Common; diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Vault/GetAzureSiteRecoveryVaultSettingsFile.cs b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Vault/GetAzureSiteRecoveryVaultSettingsFile.cs index c087fefcb017..e890aa26f3fc 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Vault/GetAzureSiteRecoveryVaultSettingsFile.cs +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/Vault/GetAzureSiteRecoveryVaultSettingsFile.cs @@ -16,9 +16,8 @@ using System.Linq; using System.Management.Automation; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Portal.RecoveryServices.Models.Common; -using Microsoft.Azure.Management.SiteRecovery.Models; namespace Microsoft.Azure.Commands.SiteRecovery { diff --git a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/packages.config b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/packages.config index a504b61e1325..afdbb9ee7cca 100644 --- a/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/packages.config +++ b/src/ResourceManager/SiteRecovery/Commands.SiteRecovery/packages.config @@ -2,7 +2,6 @@ - @@ -10,7 +9,7 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/SiteRecovery/SiteRecovery.sln b/src/ResourceManager/SiteRecovery/SiteRecovery.sln index 0df8099f8ff5..ec4d76195b8c 100644 --- a/src/ResourceManager/SiteRecovery/SiteRecovery.sln +++ b/src/ResourceManager/SiteRecovery/SiteRecovery.sln @@ -16,10 +16,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{5BA788C3-822D-453A-AABD-77D417D5A715}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -51,6 +48,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj b/src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj index 21111f6c9724..1e07954b91fb 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj +++ b/src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ ..\..\..\ true /assemblyCompareMode:StrongNameIgnoringVersion - 35c46d19 + b014b9b4 true @@ -47,10 +48,6 @@ ..\..\..\packages\Hyak.Common.1.0.3\lib\net45\Hyak.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll True @@ -84,10 +81,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -109,12 +106,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -174,12 +171,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -210,7 +215,6 @@ PreserveNewest - PreserveNewest @@ -254,6 +258,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Sql/Commands.Sql.Test/Properties/AssemblyInfo.cs index 9b3cbf1a7db4..7c390846923a 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Sql/Commands.Sql.Test/Properties/AssemblyInfo.cs @@ -35,3 +35,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/ServerUpgradeTests.ps1 b/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/ServerUpgradeTests.ps1 index fbd4ad822463..fb2febb9c31c 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/ServerUpgradeTests.ps1 +++ b/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/ServerUpgradeTests.ps1 @@ -49,11 +49,7 @@ function Test-ServerUpgradeWithUpgradeHint Assert-AreEqual $server.ServerVersion "2.0" break } - - if ($env:AZURE_TEST_MODE -eq "Record") - { - Start-Sleep -Seconds 10 - } + Wait-Seconds 10 } } finally @@ -90,11 +86,7 @@ function Test-ServerUpgradeAndCancel { break } - - if ($env:AZURE_TEST_MODE -eq "Record") - { - Start-Sleep -Seconds 10 - } + Wait-Seconds 10 } # Upgrade is cancelled diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlEvnSetupHelper.cs b/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlEvnSetupHelper.cs index 3013793b3620..593f82ae2646 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlEvnSetupHelper.cs +++ b/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlEvnSetupHelper.cs @@ -15,9 +15,11 @@ using System; using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.ResourceManager.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Gallery; using Microsoft.Azure.Graph.RBAC; using Microsoft.Azure.Management.Authorization; diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlTestsBase.cs b/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlTestsBase.cs index b2097ceb4cca..45ca7eace280 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlTestsBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/SqlTestsBase.cs @@ -19,10 +19,11 @@ using Microsoft.WindowsAzure.Management.Storage; using Microsoft.Azure.Test; using Microsoft.Azure.Graph.RBAC; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Management.Authorization; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.WindowsAzure.Commands.Common; diff --git a/src/ResourceManager/Sql/Commands.Sql.Test/packages.config b/src/ResourceManager/Sql/Commands.Sql.Test/packages.config index 2f4bb1985e64..7d84c250d1eb 100644 --- a/src/ResourceManager/Sql/Commands.Sql.Test/packages.config +++ b/src/ResourceManager/Sql/Commands.Sql.Test/packages.config @@ -2,7 +2,6 @@ - @@ -11,8 +10,8 @@ - - + + @@ -21,15 +20,19 @@ - - + + - - - + + + + + + + diff --git a/src/ResourceManager/Sql/Commands.Sql/Auditing/Cmdlet/SqlDatabaseAuditingCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Auditing/Cmdlet/SqlDatabaseAuditingCmdletBase.cs index 1fd9b17ee4c2..82b14b53443b 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Auditing/Cmdlet/SqlDatabaseAuditingCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Auditing/Cmdlet/SqlDatabaseAuditingCmdletBase.cs @@ -12,10 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Auditing.Model; using Microsoft.Azure.Commands.Sql.Auditing.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.Auditing.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/Auditing/Cmdlet/SqlDatabaseServerAuditingCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Auditing/Cmdlet/SqlDatabaseServerAuditingCmdletBase.cs index addbc31aeb9e..3bbc8963310e 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Auditing/Cmdlet/SqlDatabaseServerAuditingCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Auditing/Cmdlet/SqlDatabaseServerAuditingCmdletBase.cs @@ -13,10 +13,11 @@ // ---------------------------------------------------------------------------------- using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Auditing.Model; using Microsoft.Azure.Commands.Sql.Auditing.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.Auditing.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/Auditing/Services/AuditingEndpointsCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Auditing/Services/AuditingEndpointsCommunicator.cs index 57c4d105cb86..78a4e5d9c769 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Auditing/Services/AuditingEndpointsCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Auditing/Services/AuditingEndpointsCommunicator.cs @@ -12,11 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.Auditing.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/Auditing/Services/SqlAuditAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Auditing/Services/SqlAuditAdapter.cs index 05ade16d14bc..84b21748a911 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Auditing/Services/SqlAuditAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Auditing/Services/SqlAuditAdapter.cs @@ -14,12 +14,13 @@ using Microsoft.Azure.Commands.Sql.Properties; using Microsoft.Azure.Commands.Sql.Auditing.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Database.Services; using Microsoft.Azure.Commands.Sql.Database.Model; diff --git a/src/ResourceManager/Sql/Commands.Sql/Commands.Sql.csproj b/src/ResourceManager/Sql/Commands.Sql/Commands.Sql.csproj index 57beb11eb95a..891b05d7a809 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Commands.Sql.csproj +++ b/src/ResourceManager/Sql/Commands.Sql/Commands.Sql.csproj @@ -270,10 +270,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -294,6 +290,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -314,12 +311,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -367,6 +364,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Sql/Commands.Sql/Common/AzureEndpointsCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Common/AzureEndpointsCommunicator.cs index 3b8bfdd3e0bb..9615ae803915 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Common/AzureEndpointsCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Common/AzureEndpointsCommunicator.cs @@ -18,11 +18,13 @@ using System.Net.Http; using System.Threading; using System.Threading.Tasks; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Properties; using Microsoft.Azure.Commands.Sql.Auditing.Model; using Microsoft.Azure.Commands.Sql.Auditing.Services; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Resources.Models; using Microsoft.Azure.Management.Sql; diff --git a/src/ResourceManager/Sql/Commands.Sql/Common/AzureSqlCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Common/AzureSqlCmdletBase.cs index 58d916721b9a..0d68284cc45f 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Common/AzureSqlCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Common/AzureSqlCmdletBase.cs @@ -13,9 +13,10 @@ // ---------------------------------------------------------------------------------- using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.ResourceManager.Common; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.Azure.Commands.Sql.Common diff --git a/src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/SqlDatabaseDataMaskingPolicyCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/SqlDatabaseDataMaskingPolicyCmdletBase.cs index 4107983c29df..c414c2dca5cf 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/SqlDatabaseDataMaskingPolicyCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/SqlDatabaseDataMaskingPolicyCmdletBase.cs @@ -12,10 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.DataMasking.Model; using Microsoft.Azure.Commands.Sql.DataMasking.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.DataMasking.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/SqlDatabaseDataMaskingRuleCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/SqlDatabaseDataMaskingRuleCmdletBase.cs index f84e2469d57c..d80cb4ebb1be 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/SqlDatabaseDataMaskingRuleCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Data Masking/Cmdlet/SqlDatabaseDataMaskingRuleCmdletBase.cs @@ -14,10 +14,11 @@ using Microsoft.Azure.Commands.Sql.DataMasking.Model; using Microsoft.Azure.Commands.Sql.DataMasking.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System.Collections.Generic; using System.Linq; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.DataMasking.Cmdlet diff --git a/src/ResourceManager/Sql/Commands.Sql/Data Masking/Services/DataMaskingEndpointsCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Data Masking/Services/DataMaskingEndpointsCommunicator.cs index 90a9aab85015..f6de6c32d820 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Data Masking/Services/DataMaskingEndpointsCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Data Masking/Services/DataMaskingEndpointsCommunicator.cs @@ -12,12 +12,14 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.DataMasking.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/Data Masking/Services/SqlDataMaskingAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Data Masking/Services/SqlDataMaskingAdapter.cs index e76a372ef87e..394e6e59abf2 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Data Masking/Services/SqlDataMaskingAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Data Masking/Services/SqlDataMaskingAdapter.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Sql.DataMasking.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; using System; using System.Collections.Generic; @@ -21,6 +21,7 @@ using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Server.Services; using System.Text.RegularExpressions; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Sql.DataMasking.Services { diff --git a/src/ResourceManager/Sql/Commands.Sql/Database Activation/Cmdlet/AzureSqlDatabaseActivationCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Database Activation/Cmdlet/AzureSqlDatabaseActivationCmdletBase.cs index 4de4a12d05ec..213271bb2f91 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database Activation/Cmdlet/AzureSqlDatabaseActivationCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database Activation/Cmdlet/AzureSqlDatabaseActivationCmdletBase.cs @@ -15,12 +15,12 @@ using System; using System.Collections.Generic; using System.Management.Automation; - +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Database.Model; using Microsoft.Azure.Commands.Sql.Database.Services; using Microsoft.Azure.Commands.Sql.DatabaseActivation.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.DatabaseActivation.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/Database Activation/Services/SqlAzureDatabaseActivationAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Database Activation/Services/SqlAzureDatabaseActivationAdapter.cs index 73d319d52509..969e892de331 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database Activation/Services/SqlAzureDatabaseActivationAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database Activation/Services/SqlAzureDatabaseActivationAdapter.cs @@ -16,7 +16,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; - +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Database.Model; using Microsoft.Azure.Commands.Sql.Database.Services; @@ -24,7 +24,7 @@ using Microsoft.Azure.Commands.Sql.Properties; using Microsoft.Azure.Commands.Sql.Server.Adapter; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/Database Activation/Services/SqlAzureDatabaseActivationCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Database Activation/Services/SqlAzureDatabaseActivationCommunicator.cs index 4ae44e29946a..ef6cf091a6ac 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database Activation/Services/SqlAzureDatabaseActivationCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database Activation/Services/SqlAzureDatabaseActivationCommunicator.cs @@ -14,9 +14,10 @@ using System; using System.Collections.Generic; - -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/Database Backup/Cmdlet/AzureSqlDatabaseRestorePointCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Database Backup/Cmdlet/AzureSqlDatabaseRestorePointCmdletBase.cs index da486f2d9216..717d3e5bc219 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database Backup/Cmdlet/AzureSqlDatabaseRestorePointCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database Backup/Cmdlet/AzureSqlDatabaseRestorePointCmdletBase.cs @@ -14,6 +14,7 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Backup.Model; using Microsoft.Azure.Commands.Sql.Backup.Services; using Microsoft.Azure.Commands.Sql.Common; @@ -50,7 +51,7 @@ public abstract class AzureSqlDatabaseRestorePointCmdletBase /// /// /// - protected override AzureSqlDatabaseBackupAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlDatabaseBackupAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlDatabaseBackupAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/Database Backup/Services/AzureSqlDatabaseBackupAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Database Backup/Services/AzureSqlDatabaseBackupAdapter.cs index 57482f2b1497..b0a9816a63ed 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database Backup/Services/AzureSqlDatabaseBackupAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database Backup/Services/AzureSqlDatabaseBackupAdapter.cs @@ -16,7 +16,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; - +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Backup.Model; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Database.Model; @@ -25,7 +25,7 @@ using Microsoft.Azure.Commands.Sql.Properties; using Microsoft.Azure.Commands.Sql.Server.Adapter; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/Database Backup/Services/AzureSqlDatabaseBackupCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Database Backup/Services/AzureSqlDatabaseBackupCommunicator.cs index 8ab4e2c57b6f..e9d1a89260be 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database Backup/Services/AzureSqlDatabaseBackupCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database Backup/Services/AzureSqlDatabaseBackupCommunicator.cs @@ -14,9 +14,10 @@ using System; using System.Collections.Generic; - -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/AzureSqlDatabaseActivityCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/AzureSqlDatabaseActivityCmdletBase.cs index 33a0bd91d1b5..39ed1ef2f392 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/AzureSqlDatabaseActivityCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/AzureSqlDatabaseActivityCmdletBase.cs @@ -15,6 +15,7 @@ using System; using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Database.Model; using Microsoft.Azure.Commands.Sql.Database.Services; @@ -66,7 +67,7 @@ public abstract class AzureSqlDatabaseActivityCmdletBase /// /// /// - protected override AzureSqlDatabaseAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlDatabaseAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlDatabaseAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/AzureSqlDatabaseCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/AzureSqlDatabaseCmdletBase.cs index c2bbb13685da..307d48fe7119 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/AzureSqlDatabaseCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/AzureSqlDatabaseCmdletBase.cs @@ -14,6 +14,7 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Database.Model; using Microsoft.Azure.Commands.Sql.Database.Services; @@ -37,7 +38,7 @@ public abstract class AzureSqlDatabaseCmdletBase : AzureSqlCmdletBase /// /// - protected override AzureSqlDatabaseAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlDatabaseAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlDatabaseAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/GetAzureSqlDatabaseExpanded.cs b/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/GetAzureSqlDatabaseExpanded.cs index 91d26ddcaf2f..e7c5c8601162 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/GetAzureSqlDatabaseExpanded.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database/Cmdlet/GetAzureSqlDatabaseExpanded.cs @@ -14,6 +14,7 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Database.Model; using Microsoft.Azure.Commands.Sql.Database.Services; @@ -49,7 +50,7 @@ public class GetAzureSqlDatabaseExpanded : AzureSqlCmdletBase /// /// - protected override AzureSqlDatabaseAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlDatabaseAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlDatabaseAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/Database/Services/AzureSqlDatabaseAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Database/Services/AzureSqlDatabaseAdapter.cs index e664a38b3ab3..f8fbad3db6d3 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database/Services/AzureSqlDatabaseAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database/Services/AzureSqlDatabaseAdapter.cs @@ -16,12 +16,13 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Database.Model; using Microsoft.Azure.Commands.Sql.ElasticPool.Services; using Microsoft.Azure.Commands.Sql.Properties; using Microsoft.Azure.Commands.Sql.Server.Adapter; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; namespace Microsoft.Azure.Commands.Sql.Database.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/Database/Services/AzureSqlDatabaseCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Database/Services/AzureSqlDatabaseCommunicator.cs index 6c024cba0f7c..024a51a6451d 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Database/Services/AzureSqlDatabaseCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Database/Services/AzureSqlDatabaseCommunicator.cs @@ -12,14 +12,16 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using Microsoft.WindowsAzure.Management.Storage; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.Database.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Cmdlet/AzureSqlElasticPoolActivityCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Cmdlet/AzureSqlElasticPoolActivityCmdletBase.cs index a7a29b846457..0346ee6eea8c 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Cmdlet/AzureSqlElasticPoolActivityCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Cmdlet/AzureSqlElasticPoolActivityCmdletBase.cs @@ -14,6 +14,7 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ElasticPool.Model; using Microsoft.Azure.Commands.Sql.ElasticPool.Services; @@ -47,7 +48,7 @@ public abstract class AzureSqlElasticPoolActivityCmdletBase : AzureSqlCmdletBase /// /// /// - protected override AzureSqlElasticPoolAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlElasticPoolAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlElasticPoolAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Cmdlet/AzureSqlElasticPoolCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Cmdlet/AzureSqlElasticPoolCmdletBase.cs index 8c7a0ffc7ea9..6fcbdfd02e1c 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Cmdlet/AzureSqlElasticPoolCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Cmdlet/AzureSqlElasticPoolCmdletBase.cs @@ -14,6 +14,7 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ElasticPool.Model; using Microsoft.Azure.Commands.Sql.ElasticPool.Services; @@ -37,7 +38,7 @@ public abstract class AzureSqlElasticPoolCmdletBase : AzureSqlCmdletBase /// /// - protected override AzureSqlElasticPoolAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlElasticPoolAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlElasticPoolAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Services/AzureSqlElasticPoolAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Services/AzureSqlElasticPoolAdapter.cs index 9abab3a5e7e8..eb3168324937 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Services/AzureSqlElasticPoolAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Services/AzureSqlElasticPoolAdapter.cs @@ -15,12 +15,13 @@ using System; using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Database.Model; using Microsoft.Azure.Commands.Sql.Database.Services; using Microsoft.Azure.Commands.Sql.ElasticPool.Model; using Microsoft.Azure.Commands.Sql.Server.Adapter; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; namespace Microsoft.Azure.Commands.Sql.ElasticPool.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Services/AzureSqlElasticPoolCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Services/AzureSqlElasticPoolCommunicator.cs index ad58b15d3ce2..c680dcba5965 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Services/AzureSqlElasticPoolCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Elastic Pools/Services/AzureSqlElasticPoolCommunicator.cs @@ -12,14 +12,16 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using Microsoft.WindowsAzure.Management.Storage; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.ElasticPool.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Cmdlet/AzureSqlServerFirewallRuleCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Cmdlet/AzureSqlServerFirewallRuleCmdletBase.cs index 67227f9bd1f8..bedfc8687982 100644 --- a/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Cmdlet/AzureSqlServerFirewallRuleCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Cmdlet/AzureSqlServerFirewallRuleCmdletBase.cs @@ -14,10 +14,11 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.FirewallRule.Adapter; using Microsoft.Azure.Commands.Sql.FirewallRule.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.FirewallRule.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Services/AzureSqlServerFirewallRuleAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Services/AzureSqlServerFirewallRuleAdapter.cs index 48afa3159d05..319e9839326f 100644 --- a/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Services/AzureSqlServerFirewallRuleAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Services/AzureSqlServerFirewallRuleAdapter.cs @@ -14,10 +14,11 @@ using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.FirewallRule.Model; using Microsoft.Azure.Commands.Sql.FirewallRule.Services; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; namespace Microsoft.Azure.Commands.Sql.FirewallRule.Adapter diff --git a/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Services/AzureSqlServerFirewallRuleCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Services/AzureSqlServerFirewallRuleCommunicator.cs index ad25bd6f7935..d65dbb27352f 100644 --- a/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Services/AzureSqlServerFirewallRuleCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/FirewallRule/Services/AzureSqlServerFirewallRuleCommunicator.cs @@ -14,9 +14,11 @@ using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Cmdlet/AzureSqlDatabaseExecuteIndexRecommendationCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Cmdlet/AzureSqlDatabaseExecuteIndexRecommendationCmdletBase.cs index 53a79634a870..399f7be2e53b 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Cmdlet/AzureSqlDatabaseExecuteIndexRecommendationCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Cmdlet/AzureSqlDatabaseExecuteIndexRecommendationCmdletBase.cs @@ -14,10 +14,11 @@ using System.Linq; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Model; using Microsoft.Azure.Commands.Sql.Service; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Cmdlet/GetAzureSqlDatabaseIndexRecommendations.cs b/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Cmdlet/GetAzureSqlDatabaseIndexRecommendations.cs index 213110ca346a..7374cbad9726 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Cmdlet/GetAzureSqlDatabaseIndexRecommendations.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Cmdlet/GetAzureSqlDatabaseIndexRecommendations.cs @@ -15,10 +15,11 @@ using System.Collections.Generic; using System.Linq; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Model; using Microsoft.Azure.Commands.Sql.Service; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Service/AzureSqlDatabaseIndexRecommendationAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Service/AzureSqlDatabaseIndexRecommendationAdapter.cs index 1991f77c34b8..c400e44ef249 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Service/AzureSqlDatabaseIndexRecommendationAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Service/AzureSqlDatabaseIndexRecommendationAdapter.cs @@ -13,9 +13,10 @@ // ---------------------------------------------------------------------------------- using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Model; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.Service { diff --git a/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Service/AzureSqlDatabaseIndexRecommendationCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Service/AzureSqlDatabaseIndexRecommendationCommunicator.cs index 50c65cd4e3f8..0ad2ed9f6e35 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Service/AzureSqlDatabaseIndexRecommendationCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Index Recommendations/Service/AzureSqlDatabaseIndexRecommendationCommunicator.cs @@ -16,10 +16,12 @@ using System.Collections; using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Model; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/Location Capabilities/Services/AzureSqlCapabilitiesAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Location Capabilities/Services/AzureSqlCapabilitiesAdapter.cs index 49f3ab5feb42..a3a68697bd18 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Location Capabilities/Services/AzureSqlCapabilitiesAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Location Capabilities/Services/AzureSqlCapabilitiesAdapter.cs @@ -14,9 +14,10 @@ using System; using System.Linq; using Microsoft.Azure; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Location_Capabilities.Model; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.Location_Capabilities.Services { diff --git a/src/ResourceManager/Sql/Commands.Sql/Location Capabilities/Services/AzureSqlCapabilitiesCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Location Capabilities/Services/AzureSqlCapabilitiesCommunicator.cs index 774e7a8469ef..03d7c8bfefd9 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Location Capabilities/Services/AzureSqlCapabilitiesCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Location Capabilities/Services/AzureSqlCapabilitiesCommunicator.cs @@ -12,9 +12,11 @@ // ---------------------------------------------------------------------------------- using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Cmdlet/GetAzureSqlElasticPoolRecommendation.cs b/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Cmdlet/GetAzureSqlElasticPoolRecommendation.cs index 5da7e369712c..00ffc9539b4b 100644 --- a/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Cmdlet/GetAzureSqlElasticPoolRecommendation.cs +++ b/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Cmdlet/GetAzureSqlElasticPoolRecommendation.cs @@ -14,6 +14,7 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.RecommendedElasticPools.Services; using Microsoft.Azure.Management.Sql.Models; @@ -40,7 +41,7 @@ public class GetAzureSqlElasticPoolRecommendation : AzureSqlCmdletBase /// /// - protected override AzureSqlElasticPoolRecommendationAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlElasticPoolRecommendationAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlElasticPoolRecommendationAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Services/AzureSqlElasticPoolRecommendationAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Services/AzureSqlElasticPoolRecommendationAdapter.cs index 2b15c93701cc..64465283eff9 100644 --- a/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Services/AzureSqlElasticPoolRecommendationAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Services/AzureSqlElasticPoolRecommendationAdapter.cs @@ -14,8 +14,9 @@ using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; namespace Microsoft.Azure.Commands.Sql.RecommendedElasticPools.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Services/AzureSqlElasticPoolRecommendationCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Services/AzureSqlElasticPoolRecommendationCommunicator.cs index 7e47e912fa1e..d09065d9cd5e 100644 --- a/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Services/AzureSqlElasticPoolRecommendationCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/RecommendedElasticPools/Services/AzureSqlElasticPoolRecommendationCommunicator.cs @@ -14,9 +14,11 @@ using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; namespace Microsoft.Azure.Commands.Sql.RecommendedElasticPools.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/Replication/Cmdlet/AzureSqlDatabaseCopyCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Replication/Cmdlet/AzureSqlDatabaseCopyCmdletBase.cs index 8338e66a197d..dcc621459b5e 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Replication/Cmdlet/AzureSqlDatabaseCopyCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Replication/Cmdlet/AzureSqlDatabaseCopyCmdletBase.cs @@ -17,6 +17,7 @@ using Microsoft.Azure.Commands.Sql.ReplicationLink.Services; using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Sql.Replication.Cmdlet { @@ -37,7 +38,7 @@ public abstract class AzureSqlDatabaseCopyCmdletBase : AzureSqlCmdletBase /// The Azure Subscription /// A replication Adapter object - protected override AzureSqlDatabaseReplicationAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlDatabaseReplicationAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlDatabaseReplicationAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/Replication/Cmdlet/AzureSqlDatabaseSecondaryCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Replication/Cmdlet/AzureSqlDatabaseSecondaryCmdletBase.cs index 0e467bdebf1a..4c1b4ce1799d 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Replication/Cmdlet/AzureSqlDatabaseSecondaryCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Replication/Cmdlet/AzureSqlDatabaseSecondaryCmdletBase.cs @@ -17,6 +17,7 @@ using Microsoft.Azure.Commands.Sql.ReplicationLink.Services; using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Sql.Replication.Cmdlet { @@ -37,7 +38,7 @@ public abstract class AzureSqlDatabaseSecondaryCmdletBase : AzureSqlCmdletBase /// /// A replication Adapter object - protected override AzureSqlDatabaseReplicationAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlDatabaseReplicationAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlDatabaseReplicationAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/Replication/Services/AzureSqlDatabaseReplicationAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Replication/Services/AzureSqlDatabaseReplicationAdapter.cs index 0316ae83dc89..3bad7e3ab339 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Replication/Services/AzureSqlDatabaseReplicationAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Replication/Services/AzureSqlDatabaseReplicationAdapter.cs @@ -21,13 +21,14 @@ using Microsoft.Azure.Commands.Sql.Server.Adapter; using Microsoft.Azure.Commands.Sql.Server.Services; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Sql.ReplicationLink.Services { diff --git a/src/ResourceManager/Sql/Commands.Sql/Replication/Services/AzureSqlDatabaseReplicationCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Replication/Services/AzureSqlDatabaseReplicationCommunicator.cs index 698f6cc8e4e8..bff667b742bd 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Replication/Services/AzureSqlDatabaseReplicationCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Replication/Services/AzureSqlDatabaseReplicationCommunicator.cs @@ -13,14 +13,16 @@ // ---------------------------------------------------------------------------------- using Microsoft.Azure.Commands.Sql.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using Microsoft.WindowsAzure.Management.Storage; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Sql.ReplicationLink.Services { diff --git a/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Cmdlet/SqlDatabaseSecureConnectionCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Cmdlet/SqlDatabaseSecureConnectionCmdletBase.cs index df9906657e5f..3cd19b1666a9 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Cmdlet/SqlDatabaseSecureConnectionCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Cmdlet/SqlDatabaseSecureConnectionCmdletBase.cs @@ -12,10 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.SecureConnection.Model; using Microsoft.Azure.Commands.Sql.SecureConnection.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.SecureConnection.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Services/SecureConnectionEndpointsCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Services/SecureConnectionEndpointsCommunicator.cs index f6d0fe9aaab8..865e4abad700 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Services/SecureConnectionEndpointsCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Services/SecureConnectionEndpointsCommunicator.cs @@ -12,11 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.SecureConnection.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Services/SqlSecureConnectionAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Services/SqlSecureConnectionAdapter.cs index 0a57f130ab20..8b681aab82d5 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Services/SqlSecureConnectionAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Secure Connection/Services/SqlSecureConnectionAdapter.cs @@ -14,9 +14,10 @@ using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.SecureConnection.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; using System; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Sql.SecureConnection.Services { diff --git a/src/ResourceManager/Sql/Commands.Sql/Server/Cmdlet/AzureSqlServerCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/Server/Cmdlet/AzureSqlServerCmdletBase.cs index 970d9527c683..68250d5d8ac5 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Server/Cmdlet/AzureSqlServerCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Server/Cmdlet/AzureSqlServerCmdletBase.cs @@ -13,10 +13,10 @@ // ---------------------------------------------------------------------------------- using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Server.Adapter; using Microsoft.Azure.Commands.Sql.Server.Model; -using Microsoft.Azure.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Sql.Server.Cmdlet { @@ -29,7 +29,7 @@ public abstract class AzureSqlServerCmdletBase : AzureSqlCmdletBaseThe server adapter protected override AzureSqlServerAdapter InitModelAdapter(AzureSubscription subscription) { - return new AzureSqlServerAdapter(DefaultProfile.Context); + return new AzureSqlServerAdapter(DefaultContext); } } } diff --git a/src/ResourceManager/Sql/Commands.Sql/Server/Cmdlet/GetAzureSqlServer.cs b/src/ResourceManager/Sql/Commands.Sql/Server/Cmdlet/GetAzureSqlServer.cs index 7e0bebfd8d1b..c451a273015f 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Server/Cmdlet/GetAzureSqlServer.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Server/Cmdlet/GetAzureSqlServer.cs @@ -16,8 +16,9 @@ using System.IO; using System.Management.Automation; using System.Reflection; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.Sql.Server.Model; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.Azure.Commands.Sql.Server.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/Server/Services/AzureSqlServerAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/Server/Services/AzureSqlServerAdapter.cs index a1ef2d04967f..bd076b7ec1ea 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Server/Services/AzureSqlServerAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Server/Services/AzureSqlServerAdapter.cs @@ -18,11 +18,12 @@ using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.Server.Model; using Microsoft.Azure.Commands.Sql.Server.Services; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; @@ -46,8 +47,7 @@ public class AzureSqlServerAdapter /// /// Constructs a server adapter /// - /// The current azure profile - /// The current azure subscription + /// The current azure profile public AzureSqlServerAdapter(AzureContext context) { Context = context; diff --git a/src/ResourceManager/Sql/Commands.Sql/Server/Services/AzureSqlServerCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/Server/Services/AzureSqlServerCommunicator.cs index 11d32f26ca2d..03330e083ba9 100644 --- a/src/ResourceManager/Sql/Commands.Sql/Server/Services/AzureSqlServerCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/Server/Services/AzureSqlServerCommunicator.cs @@ -12,14 +12,16 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using Microsoft.WindowsAzure.Management.Storage; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.Server.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Cmdlet/AzureSqlServerActiveDirectoryAdministratorCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Cmdlet/AzureSqlServerActiveDirectoryAdministratorCmdletBase.cs index 428ef281d841..6670aa420109 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Cmdlet/AzureSqlServerActiveDirectoryAdministratorCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Cmdlet/AzureSqlServerActiveDirectoryAdministratorCmdletBase.cs @@ -15,6 +15,7 @@ using System; using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ServerActiveDirectoryAdministrator.Model; using Microsoft.Azure.Commands.Sql.ServerActiveDirectoryAdministrator.Services; @@ -38,7 +39,7 @@ public abstract class AzureSqlServerActiveDirectoryAdministratorCmdletBase : Azu /// /// /// - protected override AzureSqlServerActiveDirectoryAdministratorAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlServerActiveDirectoryAdministratorAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlServerActiveDirectoryAdministratorAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Services/AzureSqlServerActiveDirectoryAdministratorAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Services/AzureSqlServerActiveDirectoryAdministratorAdapter.cs index 9176486d5ee9..3dfc4bae03e2 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Services/AzureSqlServerActiveDirectoryAdministratorAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Services/AzureSqlServerActiveDirectoryAdministratorAdapter.cs @@ -17,15 +17,16 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ServerActiveDirectoryAdministrator.Model; using Microsoft.Azure.Commands.Sql.Properties; using Microsoft.Azure.Commands.Sql.Server.Adapter; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using MicrosoftAzureCommandsResources::Microsoft.Azure.Commands.Resources.Models.ActiveDirectory; namespace Microsoft.Azure.Commands.Sql.ServerActiveDirectoryAdministrator.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Services/AzureSqlServerActiveDirectoryAdministratorCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Services/AzureSqlServerActiveDirectoryAdministratorCommunicator.cs index 2453f62263ea..f93bf77a6e45 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Services/AzureSqlServerActiveDirectoryAdministratorCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerActiveDirectoryAdministrator/Services/AzureSqlServerActiveDirectoryAdministratorCommunicator.cs @@ -14,9 +14,11 @@ using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Cmdlet/AzureSqlServerCommunicationLinkCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Cmdlet/AzureSqlServerCommunicationLinkCmdletBase.cs index 8db1b8be2fc8..64c13455ab63 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Cmdlet/AzureSqlServerCommunicationLinkCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Cmdlet/AzureSqlServerCommunicationLinkCmdletBase.cs @@ -14,6 +14,7 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ServerCommunicationLink.Model; using Microsoft.Azure.Commands.Sql.ServerCommunicationLink.Services; @@ -37,7 +38,7 @@ public abstract class AzureSqlServerCommunicationLinkCmdletBase : AzureSqlCmdlet /// /// The subscription /// Link adapter for ServerCommunicationLink - protected override AzureSqlServerCommunicationLinkAdapter InitModelAdapter(Azure.Common.Authentication.Models.AzureSubscription subscription) + protected override AzureSqlServerCommunicationLinkAdapter InitModelAdapter(AzureSubscription subscription) { return new AzureSqlServerCommunicationLinkAdapter(DefaultProfile.Context); } diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Services/AzureSqlServerCommunicationLinkAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Services/AzureSqlServerCommunicationLinkAdapter.cs index e9156fb5c540..a75b1e42e830 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Services/AzureSqlServerCommunicationLinkAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Services/AzureSqlServerCommunicationLinkAdapter.cs @@ -15,12 +15,13 @@ using System; using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Database.Model; using Microsoft.Azure.Commands.Sql.Database.Services; using Microsoft.Azure.Commands.Sql.ServerCommunicationLink.Model; using Microsoft.Azure.Commands.Sql.Server.Adapter; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; namespace Microsoft.Azure.Commands.Sql.ServerCommunicationLink.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Services/AzureSqlServerCommunicationLinkCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Services/AzureSqlServerCommunicationLinkCommunicator.cs index accd6cb70623..c0c4500aeb75 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Services/AzureSqlServerCommunicationLinkCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerCommunicationLink/Services/AzureSqlServerCommunicationLinkCommunicator.cs @@ -12,14 +12,16 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using Microsoft.WindowsAzure.Management.Storage; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.ServerCommunicationLink.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Cmdlet/AzureSqlServerUpgradeCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Cmdlet/AzureSqlServerUpgradeCmdletBase.cs index 42fbe5a51486..28770663fc4b 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Cmdlet/AzureSqlServerUpgradeCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Cmdlet/AzureSqlServerUpgradeCmdletBase.cs @@ -14,9 +14,10 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ServerUpgrade.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.ServerUpgrade.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Services/AzureSqlServerUpgradeAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Services/AzureSqlServerUpgradeAdapter.cs index 7daccb1ae5b6..e868c8a3f082 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Services/AzureSqlServerUpgradeAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Services/AzureSqlServerUpgradeAdapter.cs @@ -13,9 +13,10 @@ // ---------------------------------------------------------------------------------- using System; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.ServerUpgrade.Model; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; namespace Microsoft.Azure.Commands.Sql.ServerUpgrade.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Services/AzureSqlServerUpgradeCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Services/AzureSqlServerUpgradeCommunicator.cs index d631fcb4a0aa..656cea37e936 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Services/AzureSqlServerUpgradeCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServerUpgrade/Services/AzureSqlServerUpgradeCommunicator.cs @@ -15,10 +15,12 @@ using System; using System.Net; using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ServerUpgrade.Model; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; @@ -52,8 +54,7 @@ public class AzureSqlServerUpgradeCommunicator /// /// Creates a communicator for Azure Sql Databases /// - /// - /// + /// public AzureSqlServerUpgradeCommunicator(AzureContext context) { Context = context; diff --git a/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Cmdlet/AzureSqlServerServiceObjectiveCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Cmdlet/AzureSqlServerServiceObjectiveCmdletBase.cs index 8a76daae9105..3b9327e01619 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Cmdlet/AzureSqlServerServiceObjectiveCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Cmdlet/AzureSqlServerServiceObjectiveCmdletBase.cs @@ -13,10 +13,11 @@ // ---------------------------------------------------------------------------------- using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ServiceObjective.Adapter; using Microsoft.Azure.Commands.Sql.ServiceObjective.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.ServiceObjective.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Service/AzureSqlServerServiceObjectiveAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Service/AzureSqlServerServiceObjectiveAdapter.cs index 29b0e30d323f..dfc98b6518d1 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Service/AzureSqlServerServiceObjectiveAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Service/AzureSqlServerServiceObjectiveAdapter.cs @@ -18,11 +18,12 @@ using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ServiceObjective.Model; using Microsoft.Azure.Commands.Sql.ServiceObjective.Services; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Service/AzureSqlServerServiceObjectiveCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Service/AzureSqlServerServiceObjectiveCommunicator.cs index dc6482731f7a..31d31277c30d 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Service/AzureSqlServerServiceObjectiveCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServiceObjective/Service/AzureSqlServerServiceObjectiveCommunicator.cs @@ -12,14 +12,16 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using Microsoft.WindowsAzure.Management.Storage; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.ServiceObjective.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Cmdlet/GetAzureSqlUpgradeDatabaseHint.cs b/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Cmdlet/GetAzureSqlUpgradeDatabaseHint.cs index e446b6e0c3d0..ddf6a9958239 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Cmdlet/GetAzureSqlUpgradeDatabaseHint.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Cmdlet/GetAzureSqlUpgradeDatabaseHint.cs @@ -14,9 +14,10 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ServiceTierAdvisor.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; namespace Microsoft.Azure.Commands.Sql.ServiceTierAdvisor.Cmdlet diff --git a/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Cmdlet/GetAzureSqlUpgradeServerHint.cs b/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Cmdlet/GetAzureSqlUpgradeServerHint.cs index 179803015a24..d9be2775abea 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Cmdlet/GetAzureSqlUpgradeServerHint.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Cmdlet/GetAzureSqlUpgradeServerHint.cs @@ -13,11 +13,12 @@ // ---------------------------------------------------------------------------------- using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.RecommendedElasticPools.Services; using Microsoft.Azure.Commands.Sql.ServiceTierAdvisor.Model; using Microsoft.Azure.Commands.Sql.ServiceTierAdvisor.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.ServiceTierAdvisor.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Services/AzureSqlServiceTierAdvisorAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Services/AzureSqlServiceTierAdvisorAdapter.cs index e81e63de2f18..49c01259b258 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Services/AzureSqlServiceTierAdvisorAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Services/AzureSqlServiceTierAdvisorAdapter.cs @@ -14,8 +14,9 @@ using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; namespace Microsoft.Azure.Commands.Sql.ServiceTierAdvisor.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Services/AzureSqlServiceTierAdvisorCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Services/AzureSqlServiceTierAdvisorCommunicator.cs index dd74ebdbbb78..4b381a4fd6e2 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Services/AzureSqlServiceTierAdvisorCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ServiceTierAdvisor/Services/AzureSqlServiceTierAdvisorCommunicator.cs @@ -14,9 +14,11 @@ using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; namespace Microsoft.Azure.Commands.Sql.ServiceTierAdvisor.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Cmdlet/SqlDatabaseThreatDetectionCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Cmdlet/SqlDatabaseThreatDetectionCmdletBase.cs index e53f1926a48c..0ae708369ace 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Cmdlet/SqlDatabaseThreatDetectionCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Cmdlet/SqlDatabaseThreatDetectionCmdletBase.cs @@ -12,10 +12,11 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.ThreatDetection.Model; using Microsoft.Azure.Commands.Sql.ThreatDetection.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.ThreatDetection.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Services/SqlThreatDetectionAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Services/SqlThreatDetectionAdapter.cs index 7ef6cac7e05a..ebe998793712 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Services/SqlThreatDetectionAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Services/SqlThreatDetectionAdapter.cs @@ -12,12 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Auditing.Model; using Microsoft.Azure.Commands.Sql.Auditing.Services; using Microsoft.Azure.Commands.Sql.Common; diff --git a/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Services/ThreatDetectionEndpointsCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Services/ThreatDetectionEndpointsCommunicator.cs index 76bf11e67b9b..42b5fb756626 100644 --- a/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Services/ThreatDetectionEndpointsCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/ThreatDetection/Services/ThreatDetectionEndpointsCommunicator.cs @@ -12,11 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; using System; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; namespace Microsoft.Azure.Commands.Sql.ThreatDetection.Services diff --git a/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Cmdlet/AzureSqlDatabaseTransparentDataEncryptionActivityCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Cmdlet/AzureSqlDatabaseTransparentDataEncryptionActivityCmdletBase.cs index 5d816281adc8..cfd2044ed1e0 100644 --- a/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Cmdlet/AzureSqlDatabaseTransparentDataEncryptionActivityCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Cmdlet/AzureSqlDatabaseTransparentDataEncryptionActivityCmdletBase.cs @@ -14,10 +14,11 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.TransparentDataEncryption.Adapter; using Microsoft.Azure.Commands.Sql.TransparentDataEncryption.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.TransparentDataEncryption.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Cmdlet/AzureSqlDatabaseTransparentDataEncryptionCmdletBase.cs b/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Cmdlet/AzureSqlDatabaseTransparentDataEncryptionCmdletBase.cs index d3f8a80fe729..d6ed867ee7e1 100644 --- a/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Cmdlet/AzureSqlDatabaseTransparentDataEncryptionCmdletBase.cs +++ b/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Cmdlet/AzureSqlDatabaseTransparentDataEncryptionCmdletBase.cs @@ -14,10 +14,11 @@ using System.Collections.Generic; using System.Management.Automation; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.TransparentDataEncryption.Adapter; using Microsoft.Azure.Commands.Sql.TransparentDataEncryption.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.Azure.Commands.Sql.TransparentDataEncryption.Cmdlet { diff --git a/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Services/AzureSqlDatabaseTransparentDataEncryptionAdapter.cs b/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Services/AzureSqlDatabaseTransparentDataEncryptionAdapter.cs index 797090507571..5c44ddd12660 100644 --- a/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Services/AzureSqlDatabaseTransparentDataEncryptionAdapter.cs +++ b/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Services/AzureSqlDatabaseTransparentDataEncryptionAdapter.cs @@ -15,11 +15,12 @@ using System; using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Sql.Common; using Microsoft.Azure.Commands.Sql.TransparentDataEncryption.Model; using Microsoft.Azure.Commands.Sql.TransparentDataEncryption.Services; using Microsoft.Azure.Commands.Sql.Services; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Services/AzureSqlDatabaseTransparentDataEncryptionCommunicator.cs b/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Services/AzureSqlDatabaseTransparentDataEncryptionCommunicator.cs index 64d78f415e78..8937000bd405 100644 --- a/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Services/AzureSqlDatabaseTransparentDataEncryptionCommunicator.cs +++ b/src/ResourceManager/Sql/Commands.Sql/TransparentDataEncryption/Services/AzureSqlDatabaseTransparentDataEncryptionCommunicator.cs @@ -14,8 +14,10 @@ using System; using System.Collections.Generic; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Sql; using Microsoft.Azure.Management.Sql.Models; diff --git a/src/ResourceManager/Sql/Commands.Sql/packages.config b/src/ResourceManager/Sql/Commands.Sql/packages.config index e8cb4e3a1926..b0623f1a1ea6 100644 --- a/src/ResourceManager/Sql/Commands.Sql/packages.config +++ b/src/ResourceManager/Sql/Commands.Sql/packages.config @@ -2,7 +2,6 @@ - @@ -16,8 +15,8 @@ - - + + diff --git a/src/ResourceManager/Sql/Sql.sln b/src/ResourceManager/Sql/Sql.sln index e2e3d1142475..33f312fe6aa6 100644 --- a/src/ResourceManager/Sql/Sql.sln +++ b/src/ResourceManager/Sql/Sql.sln @@ -32,10 +32,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Insights", "..\Ins EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ServiceManagement.Common", "..\..\ServiceManagement\Common\Commands.ServiceManagement.Common\Commands.ServiceManagement.Common.csproj", "{CFF09E81-1E31-444E-B4D4-A21E946C29E2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{7025EE1A-63F8-4488-B0D9-02141EB18C8E}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -99,6 +96,10 @@ Global {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Debug|Any CPU.Build.0 = Debug|Any CPU {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Release|Any CPU.ActiveCfg = Release|Any CPU {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.csproj b/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.csproj index db311499f5db..9b96dbcc44b9 100644 --- a/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.csproj +++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/Commands.Management.Storage.Test.csproj @@ -1,5 +1,7 @@  + + Debug @@ -13,7 +15,7 @@ 512 ..\..\..\..\ true - e6b6ae5d + f747f8a7 true @@ -39,10 +41,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -61,10 +59,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -73,16 +71,16 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True False ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.2.5.4\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -110,12 +108,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -125,6 +131,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3436a126-edc9-4060-8952-9a1be34cdd95} Commands.ScenarioTests.ResourceManager.Common diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Storage/Commands.Management.Storage.Test/Properties/AssemblyInfo.cs index 7cf98a99b3e0..a437befdff39 100644 --- a/src/ResourceManager/Storage/Commands.Management.Storage.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/Properties/AssemblyInfo.cs @@ -49,3 +49,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/TestController.cs b/src/ResourceManager/Storage/Commands.Management.Storage.Test/TestController.cs index a17028781d2e..b340f5e84b56 100644 --- a/src/ResourceManager/Storage/Commands.Management.Storage.Test/TestController.cs +++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/TestController.cs @@ -15,7 +15,7 @@ using System; using System.Collections.Generic; using System.Linq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; @@ -82,6 +82,8 @@ public void RunPsTestWorkflow( { Dictionary d = new Dictionary(); d.Add("Microsoft.Authorization", null); + d.Add("Microsoft.Storage", null); + HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(false, d); using (UndoContext context = UndoContext.Current) diff --git a/src/ResourceManager/Storage/Commands.Management.Storage.Test/packages.config b/src/ResourceManager/Storage/Commands.Management.Storage.Test/packages.config index 1020e30991b4..98b4e1ce9a32 100644 --- a/src/ResourceManager/Storage/Commands.Management.Storage.Test/packages.config +++ b/src/ResourceManager/Storage/Commands.Management.Storage.Test/packages.config @@ -2,22 +2,26 @@ - - - + + - - + + - - + + + + + + + diff --git a/src/ResourceManager/Storage/Commands.Management.Storage/Commands.Management.Storage.csproj b/src/ResourceManager/Storage/Commands.Management.Storage/Commands.Management.Storage.csproj index 0377e5724117..a31fe3054228 100644 --- a/src/ResourceManager/Storage/Commands.Management.Storage/Commands.Management.Storage.csproj +++ b/src/ResourceManager/Storage/Commands.Management.Storage/Commands.Management.Storage.csproj @@ -53,10 +53,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -88,15 +84,15 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.2.5.4\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -172,6 +168,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ResourceManager/Storage/Commands.Management.Storage/StorageAccount/StorageManagementClient.cs b/src/ResourceManager/Storage/Commands.Management.Storage/StorageAccount/StorageManagementClient.cs index 45b1307297f7..3fa53f64e691 100644 --- a/src/ResourceManager/Storage/Commands.Management.Storage/StorageAccount/StorageManagementClient.cs +++ b/src/ResourceManager/Storage/Commands.Management.Storage/StorageAccount/StorageManagementClient.cs @@ -13,8 +13,8 @@ // ---------------------------------------------------------------------------------- using System; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.Storage; namespace Microsoft.Azure.Commands.Management.Storage diff --git a/src/ResourceManager/Storage/Commands.Management.Storage/packages.config b/src/ResourceManager/Storage/Commands.Management.Storage/packages.config index 7a66eb206774..62fa0467fb0b 100644 --- a/src/ResourceManager/Storage/Commands.Management.Storage/packages.config +++ b/src/ResourceManager/Storage/Commands.Management.Storage/packages.config @@ -2,7 +2,6 @@ - @@ -14,8 +13,8 @@ - - + + diff --git a/src/ResourceManager/Storage/Storage.sln b/src/ResourceManager/Storage/Storage.sln index 5a911f49a400..732453752896 100644 --- a/src/ResourceManager/Storage/Storage.sln +++ b/src/ResourceManager/Storage/Storage.sln @@ -26,6 +26,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ScenarioTests.Reso EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources.Rest", "..\Resources\Commands.ResourceManager\Cmdlets\Commands.Resources.Rest.csproj", "{8058D403-06E3-4BED-8924-D166CE303961}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -76,6 +78,10 @@ Global {8058D403-06E3-4BED-8924-D166CE303961}.Debug|Any CPU.Build.0 = Debug|Any CPU {8058D403-06E3-4BED-8924-D166CE303961}.Release|Any CPU.ActiveCfg = Release|Any CPU {8058D403-06E3-4BED-8924-D166CE303961}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/StreamAnalytics/.nuget/packages.config b/src/ResourceManager/StreamAnalytics/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/StreamAnalytics/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Commands.StreamAnalytics.Test.csproj b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Commands.StreamAnalytics.Test.csproj index ca49b54e447e..e8e1893959a2 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Commands.StreamAnalytics.Test.csproj +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Commands.StreamAnalytics.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ 512 ..\..\..\ true - e11bc73b + 447ecd03 true @@ -47,10 +48,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -74,11 +71,11 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -99,12 +96,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -156,16 +153,28 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Properties/AssemblyInfo.cs index 2c87c95404a9..d20f1da86e59 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/Properties/AssemblyInfo.cs @@ -35,3 +35,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/ScenarioTests/StreamAnalyticsScenarioTestsBase.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/ScenarioTests/StreamAnalyticsScenarioTestsBase.cs index 7fa1fc97e9ec..7c72a2e80393 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/ScenarioTests/StreamAnalyticsScenarioTestsBase.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/ScenarioTests/StreamAnalyticsScenarioTestsBase.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/packages.config b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/packages.config index 72de9ad6da3e..ebffe627d5f7 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/packages.config +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics.Test/packages.config @@ -2,15 +2,14 @@ - - - + + @@ -19,15 +18,19 @@ - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Commands.StreamAnalytics.csproj b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Commands.StreamAnalytics.csproj index 10bdca9a79ee..7f5fb8048b57 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Commands.StreamAnalytics.csproj +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Commands.StreamAnalytics.csproj @@ -54,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -93,12 +89,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -224,6 +220,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.cs index 045121b801f7..f5c2278a1cdc 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/Models/StreamAnalyticsClient.cs @@ -13,10 +13,9 @@ // ---------------------------------------------------------------------------------- using System.IO; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.StreamAnalytics; -using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication; namespace Microsoft.Azure.Commands.StreamAnalytics.Models { diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/StreamAnalyticsCommonUtilities.cs b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/StreamAnalyticsCommonUtilities.cs index df745c2a5e7d..7817aeec85db 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/StreamAnalyticsCommonUtilities.cs +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/StreamAnalyticsCommonUtilities.cs @@ -17,10 +17,9 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.StreamAnalytics.Properties; -using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json; -using Microsoft.Azure.Common.Authentication; namespace Microsoft.Azure.Commands.StreamAnalytics { diff --git a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/packages.config b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/packages.config index 9df41525bf19..4e38d37a1677 100644 --- a/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/packages.config +++ b/src/ResourceManager/StreamAnalytics/Commands.StreamAnalytics/packages.config @@ -2,7 +2,6 @@ - @@ -15,8 +14,8 @@ - - + + diff --git a/src/ResourceManager/StreamAnalytics/StreamAnalytics.sln b/src/ResourceManager/StreamAnalytics/StreamAnalytics.sln index b8ff230514a9..7bd69765947d 100644 --- a/src/ResourceManager/StreamAnalytics/StreamAnalytics.sln +++ b/src/ResourceManager/StreamAnalytics/StreamAnalytics.sln @@ -28,10 +28,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources.Rest", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Commands.Tags\Commands.Tags.csproj", "{2493A8F7-1949-4F29-8D53-9D459046C3B8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{02FF609A-B93B-4CDE-89FD-F7E9B9BA45E0}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -87,6 +84,10 @@ Global {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU {2493A8F7-1949-4F29-8D53-9D459046C3B8}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Tags/Commands.Tags/Commands.Tags.csproj b/src/ResourceManager/Tags/Commands.Tags/Commands.Tags.csproj index 545a6fc545a7..71f42ae15d12 100644 --- a/src/ResourceManager/Tags/Commands.Tags/Commands.Tags.csproj +++ b/src/ResourceManager/Tags/Commands.Tags/Commands.Tags.csproj @@ -54,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -73,12 +69,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -161,6 +157,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Tags/Commands.Tags/Model/TagsClient.cs b/src/ResourceManager/Tags/Commands.Tags/Model/TagsClient.cs index 3c9d66e3c0ad..376fef3f8b01 100644 --- a/src/ResourceManager/Tags/Commands.Tags/Model/TagsClient.cs +++ b/src/ResourceManager/Tags/Commands.Tags/Model/TagsClient.cs @@ -15,13 +15,12 @@ using System; using System.Collections.Generic; using System.Linq; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.Tags.Properties; using Microsoft.Azure.Management.Resources; using Microsoft.Azure.Management.Resources.Models; -using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; namespace Microsoft.Azure.Commands.Tags.Model { diff --git a/src/ResourceManager/Tags/Commands.Tags/packages.config b/src/ResourceManager/Tags/Commands.Tags/packages.config index 377dbc50a2f5..053452276ede 100644 --- a/src/ResourceManager/Tags/Commands.Tags/packages.config +++ b/src/ResourceManager/Tags/Commands.Tags/packages.config @@ -2,7 +2,6 @@ - @@ -10,8 +9,8 @@ - - + + \ No newline at end of file diff --git a/src/ResourceManager/Tags/Tags.sln b/src/ResourceManager/Tags/Tags.sln index d4527bd8a3d9..9b83adc467af 100644 --- a/src/ResourceManager/Tags/Tags.sln +++ b/src/ResourceManager/Tags/Tags.sln @@ -8,6 +8,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "Commands.T EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -26,6 +28,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/TrafficManager/.nuget/packages.config b/src/ResourceManager/TrafficManager/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/TrafficManager/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/Commands.TrafficManager.Test.csproj b/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/Commands.TrafficManager.Test.csproj index fbe175d36e52..d209d93111c0 100644 --- a/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/Commands.TrafficManager.Test.csproj +++ b/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/Commands.TrafficManager.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\ true - a5adf578 + 0e772c9e true @@ -44,10 +45,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -69,12 +66,13 @@ False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -82,12 +80,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -103,15 +101,25 @@ False + + - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -147,6 +155,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/Properties/AssemblyInfo.cs index f4cc8e779772..e8ff44f2aea0 100644 --- a/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/Properties/AssemblyInfo.cs @@ -47,3 +47,4 @@ // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/ScenarioTests/TestController.cs b/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/ScenarioTests/TestController.cs index f8f894c3a1bb..22be15d816b3 100644 --- a/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/ScenarioTests/TestController.cs +++ b/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/ScenarioTests/TestController.cs @@ -13,13 +13,13 @@ // ---------------------------------------------------------------------------------- using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test.HttpRecorder; namespace Microsoft.Azure.Commands.TrafficManager.Test.ScenarioTests { using System; using System.Linq; - using Microsoft.Azure.Common.Authentication; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; diff --git a/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/packages.config b/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/packages.config index 9a8288be0e93..4932e3d2a910 100644 --- a/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/packages.config +++ b/src/ResourceManager/TrafficManager/Commands.TrafficManager2.Test/packages.config @@ -2,24 +2,27 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/TrafficManager/Commands.TrafficManager2/Commands.TrafficManager.csproj b/src/ResourceManager/TrafficManager/Commands.TrafficManager2/Commands.TrafficManager.csproj index 61e14de3ef50..0ab7ae1a975e 100644 --- a/src/ResourceManager/TrafficManager/Commands.TrafficManager2/Commands.TrafficManager.csproj +++ b/src/ResourceManager/TrafficManager/Commands.TrafficManager2/Commands.TrafficManager.csproj @@ -54,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Management.TrafficManager.1.0.0\lib\portable-net45+sl50+wp80+win\Microsoft.Azure.Management.TrafficManager.dll @@ -65,6 +61,15 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + False ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll @@ -77,19 +82,13 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - + + @@ -124,6 +123,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/TrafficManager/Commands.TrafficManager2/Utilities/TrafficManagerClient.cs b/src/ResourceManager/TrafficManager/Commands.TrafficManager2/Utilities/TrafficManagerClient.cs index 65746683a749..a957b3705b7b 100644 --- a/src/ResourceManager/TrafficManager/Commands.TrafficManager2/Utilities/TrafficManagerClient.cs +++ b/src/ResourceManager/TrafficManager/Commands.TrafficManager2/Utilities/TrafficManagerClient.cs @@ -12,6 +12,9 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; + namespace Microsoft.Azure.Commands.TrafficManager.Utilities { using System; @@ -19,12 +22,10 @@ namespace Microsoft.Azure.Commands.TrafficManager.Utilities using System.Collections.Generic; using System.Linq; using System.Net; - using Microsoft.Azure.Commands.Tags.Model; - using Microsoft.Azure.Commands.TrafficManager.Models; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; - using Microsoft.Azure.Management.TrafficManager; - using Microsoft.Azure.Management.TrafficManager.Models; + using Tags.Model; + using Models; + using Management.TrafficManager; + using Management.TrafficManager.Models; public class TrafficManagerClient { diff --git a/src/ResourceManager/TrafficManager/Commands.TrafficManager2/packages.config b/src/ResourceManager/TrafficManager/Commands.TrafficManager2/packages.config index 7cc84f7246b6..23ef0d812519 100644 --- a/src/ResourceManager/TrafficManager/Commands.TrafficManager2/packages.config +++ b/src/ResourceManager/TrafficManager/Commands.TrafficManager2/packages.config @@ -2,7 +2,6 @@ - @@ -14,8 +13,8 @@ - - + + diff --git a/src/ResourceManager/TrafficManager/TrafficManager.sln b/src/ResourceManager/TrafficManager/TrafficManager.sln index 39965396e140..541eb88e351f 100644 --- a/src/ResourceManager/TrafficManager/TrafficManager.sln +++ b/src/ResourceManager/TrafficManager/TrafficManager.sln @@ -22,10 +22,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Resources.Rest", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{899AAE30-3C07-4F4F-8806-F36A26D7EA5F}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,6 +66,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/UsageAggregates/.nuget/packages.config b/src/ResourceManager/UsageAggregates/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/UsageAggregates/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Commands.UsageAggregates.Test.csproj b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Commands.UsageAggregates.Test.csproj index 9522e2881e3b..d020df0706ee 100644 --- a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Commands.UsageAggregates.Test.csproj +++ b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Commands.UsageAggregates.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -14,7 +15,7 @@ 512 ..\..\..\ true - 970255a4 + 32362ec3 true @@ -46,20 +47,16 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll True - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll True - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll True - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -70,12 +67,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -88,18 +85,28 @@ ..\..\..\packages\System.Management.Automation_PowerShell_3.0.6.3.9600.17400\lib\net40\System.Management.Automation.dll True + + - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -109,6 +116,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3819d8a7-c62c-4c47-8ddd-0332d9ce1252} Commands.ResourceManager.Common diff --git a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Common/UsageAggregatesTestController.cs b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Common/UsageAggregatesTestController.cs index 728f1fac528a..3af1878dd57f 100644 --- a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Common/UsageAggregatesTestController.cs +++ b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Common/UsageAggregatesTestController.cs @@ -17,7 +17,7 @@ using System; using System.Linq; using Microsoft.Azure.Commerce.UsageAggregates; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.UsageAggregates.Test.ScenarioTests { diff --git a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Properties/AssemblyInfo.cs index c4ab8a641630..24be33e2f1b5 100644 --- a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/Properties/AssemblyInfo.cs @@ -34,3 +34,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/packages.config b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/packages.config index 5ae0f178e49b..251a96f733f4 100644 --- a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/packages.config +++ b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates.Test/packages.config @@ -3,20 +3,23 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/Commands.UsageAggregates.csproj b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/Commands.UsageAggregates.csproj index 125b83993d95..307b0b65aa70 100644 --- a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/Commands.UsageAggregates.csproj +++ b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/Commands.UsageAggregates.csproj @@ -48,10 +48,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll True - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True @@ -63,6 +59,14 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -76,14 +80,6 @@ ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - @@ -119,6 +115,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/GetUsageAggregatesCommand.cs b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/GetUsageAggregatesCommand.cs index ea21798b839b..658708121308 100644 --- a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/GetUsageAggregatesCommand.cs +++ b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/GetUsageAggregatesCommand.cs @@ -13,14 +13,13 @@ // ---------------------------------------------------------------------------------- +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commerce.UsageAggregates; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; namespace Microsoft.Azure.Commands.UsageAggregates { using Commerce.UsageAggregates.Models; - using WindowsAzure.Commands.Utilities.Common; using System; using System.Management.Automation; using ResourceManager.Common; diff --git a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/packages.config b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/packages.config index dfbd20cf1d2c..7342bc2ef421 100644 --- a/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/packages.config +++ b/src/ResourceManager/UsageAggregates/Commands.UsageAggregates/packages.config @@ -3,14 +3,13 @@ - - - + + \ No newline at end of file diff --git a/src/ResourceManager/UsageAggregates/UsageAggregates.sln b/src/ResourceManager/UsageAggregates/UsageAggregates.sln index 4a2cf26659bc..2b6b7326cd03 100644 --- a/src/ResourceManager/UsageAggregates/UsageAggregates.sln +++ b/src/ResourceManager/UsageAggregates/UsageAggregates.sln @@ -16,10 +16,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Profile", "..\Prof EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{75D9D053-E4E9-411E-8337-E982178E886F}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -51,6 +48,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ResourceManager/Websites/.nuget/packages.config b/src/ResourceManager/Websites/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ResourceManager/Websites/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ResourceManager/Websites/Commands.Websites.Test/Commands.Websites.Test.csproj b/src/ResourceManager/Websites/Commands.Websites.Test/Commands.Websites.Test.csproj index ca3a60b83588..888fad7b9837 100644 --- a/src/ResourceManager/Websites/Commands.Websites.Test/Commands.Websites.Test.csproj +++ b/src/ResourceManager/Websites/Commands.Websites.Test/Commands.Websites.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\ true - c8f5e508 + 88c2059b true @@ -47,10 +48,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -64,8 +61,7 @@ True - False - ..\..\..\packages\Microsoft.Azure.Management.Websites.1.0.2-preview\lib\net45\Microsoft.Azure.Management.Websites.dll + ..\..\..\packages\Microsoft.Azure.Management.Websites.1.1.0-preview\lib\net45\Microsoft.Azure.Management.Websites.dll True @@ -73,12 +69,13 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll True - + False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.4.0-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.6.0-preview\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + True False @@ -88,23 +85,16 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.2.5.4\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll True - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.TestFramework.1.2.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.TestFramework.dll True @@ -131,12 +121,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -260,6 +258,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Websites/Commands.Websites.Test/Properties/AssemblyInfo.cs b/src/ResourceManager/Websites/Commands.Websites.Test/Properties/AssemblyInfo.cs index 9b6b215b2461..46dc05123a65 100644 --- a/src/ResourceManager/Websites/Commands.Websites.Test/Properties/AssemblyInfo.cs +++ b/src/ResourceManager/Websites/Commands.Websites.Test/Properties/AssemblyInfo.cs @@ -35,3 +35,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ResourceManager/Websites/Commands.Websites.Test/ScenarioTests/WebsitesController.cs b/src/ResourceManager/Websites/Commands.Websites.Test/ScenarioTests/WebsitesController.cs index c4fd2831dec3..f29834ec72a2 100644 --- a/src/ResourceManager/Websites/Commands.Websites.Test/ScenarioTests/WebsitesController.cs +++ b/src/ResourceManager/Websites/Commands.Websites.Test/ScenarioTests/WebsitesController.cs @@ -15,7 +15,8 @@ using System; using System.Collections.Generic; using System.Linq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.Azure.Gallery; using Microsoft.Azure.Management.Authorization; using Microsoft.Azure.Management.Resources; @@ -27,6 +28,7 @@ using LegacyTest = Microsoft.Azure.Test; using TestEnvironmentFactory = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestEnvironmentFactory; using TestUtilities = Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities; +using System.IO; namespace Microsoft.Azure.Commands.Websites.Test.ScenarioTests { @@ -91,6 +93,7 @@ public void RunPsTestWorkflow( d.Add("Microsoft.Authorization", AuthorizationApiVersion); HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(false, d); + HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); using (MockContext context = MockContext.Start(callingClassType, mockName)) { this.csmTestFactory = new LegacyTest.CSMTestEnvironmentFactory(); diff --git a/src/ResourceManager/Websites/Commands.Websites.Test/packages.config b/src/ResourceManager/Websites/Commands.Websites.Test/packages.config index 6e5f5429d236..c39ea0dd9cda 100644 --- a/src/ResourceManager/Websites/Commands.Websites.Test/packages.config +++ b/src/ResourceManager/Websites/Commands.Websites.Test/packages.config @@ -2,26 +2,28 @@ - - - - + + + - - - - + + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ResourceManager/Websites/Commands.Websites/Commands.Websites.csproj b/src/ResourceManager/Websites/Commands.Websites/Commands.Websites.csproj index 0953e2ce74c8..8e7192cfb386 100644 --- a/src/ResourceManager/Websites/Commands.Websites/Commands.Websites.csproj +++ b/src/ResourceManager/Websites/Commands.Websites/Commands.Websites.csproj @@ -54,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -75,7 +71,7 @@ True - ..\..\..\packages\Microsoft.Azure.Management.Websites.1.0.2-preview\lib\net45\Microsoft.Azure.Management.Websites.dll + ..\..\..\packages\Microsoft.Azure.Management.Websites.1.1.0-preview\lib\net45\Microsoft.Azure.Management.Websites.dll True @@ -91,17 +87,16 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - False - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.2.5.4\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.3.0.2\lib\net45\Microsoft.Rest.ClientRuntime.Azure.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.0-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -208,6 +203,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ResourceManager/Websites/Commands.Websites/Utilities/WebsitesClient.cs b/src/ResourceManager/Websites/Commands.Websites/Utilities/WebsitesClient.cs index 26f0ae41602b..93a3182bc835 100644 --- a/src/ResourceManager/Websites/Commands.Websites/Utilities/WebsitesClient.cs +++ b/src/ResourceManager/Websites/Commands.Websites/Utilities/WebsitesClient.cs @@ -20,8 +20,8 @@ using System.Xml.Linq; using Microsoft.Azure.Commands.Resources.Models; using Microsoft.Azure.Commands.WebApps.Models.WebApp; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.Resources.Models; using Microsoft.Azure.Management.WebSites; using Microsoft.Azure.Management.WebSites.Models; diff --git a/src/ResourceManager/Websites/Commands.Websites/packages.config b/src/ResourceManager/Websites/Commands.Websites/packages.config index bd1efd72c13e..1a8a5ceb792e 100644 --- a/src/ResourceManager/Websites/Commands.Websites/packages.config +++ b/src/ResourceManager/Websites/Commands.Websites/packages.config @@ -2,20 +2,19 @@ - - + - - - + + + \ No newline at end of file diff --git a/src/ResourceManager/Websites/WebSites.sln b/src/ResourceManager/Websites/WebSites.sln index 524f2c8705f0..ad7755c6200e 100644 --- a/src/ResourceManager/Websites/WebSites.sln +++ b/src/ResourceManager/Websites/WebSites.sln @@ -22,10 +22,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Tags", "..\Tags\Co EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common", "..\..\Common\Commands.Common\Commands.Common.csproj", "{5EE72C53-1720-4309-B54B-5FB79703195F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{C5A93E47-40AD-43C3-A08C-29B7485F4C8B}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,6 +66,10 @@ Global {5EE72C53-1720-4309-B54B-5FB79703195F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EE72C53-1720-4309-B54B-5FB79703195F}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ServiceManagement/.nuget/packages.config b/src/ServiceManagement/.nuget/packages.config deleted file mode 100644 index 091917678945..000000000000 --- a/src/ServiceManagement/.nuget/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/ServiceManagement/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj b/src/ServiceManagement/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj index d7ad7f09a6d6..061c5871dbb4 100644 --- a/src/ServiceManagement/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj +++ b/src/ServiceManagement/Automation/Commands.Automation.Test/Commands.Automation.Test.csproj @@ -1,6 +1,7 @@  - + + Debug AnyCPU @@ -18,8 +19,7 @@ ..\..\..\ true - - + 5b56844e true @@ -56,10 +56,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -68,9 +64,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True + False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll @@ -79,12 +76,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -125,6 +122,23 @@ ..\..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll + + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + @@ -166,6 +180,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ServiceManagement/Automation/Commands.Automation.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/Automation/Commands.Automation.Test/Properties/AssemblyInfo.cs index 1176996557a5..c93f04a91fa6 100644 --- a/src/ServiceManagement/Automation/Commands.Automation.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/Automation/Commands.Automation.Test/Properties/AssemblyInfo.cs @@ -15,6 +15,7 @@ using System; using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -45,3 +46,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] [assembly: CLSCompliant(false)] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/Automation/Commands.Automation.Test/packages.config b/src/ServiceManagement/Automation/Commands.Automation.Test/packages.config index c62dcf943ceb..62c3e7d2f9d3 100644 --- a/src/ServiceManagement/Automation/Commands.Automation.Test/packages.config +++ b/src/ServiceManagement/Automation/Commands.Automation.Test/packages.config @@ -2,19 +2,24 @@ - - + - - + + - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/Automation/Commands.Automation/Commands.Automation.csproj b/src/ServiceManagement/Automation/Commands.Automation/Commands.Automation.csproj index 740ad8b26bbb..1b1ced1fff8d 100644 --- a/src/ServiceManagement/Automation/Commands.Automation/Commands.Automation.csproj +++ b/src/ServiceManagement/Automation/Commands.Automation/Commands.Automation.csproj @@ -58,10 +58,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -69,6 +65,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True @@ -77,12 +74,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -221,6 +218,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/Automation/Commands.Automation/Common/AutomationClient.cs b/src/ServiceManagement/Automation/Commands.Automation/Common/AutomationClient.cs index 82184d13ffdc..0eef97cef3b6 100644 --- a/src/ServiceManagement/Automation/Commands.Automation/Common/AutomationClient.cs +++ b/src/ServiceManagement/Automation/Commands.Automation/Common/AutomationClient.cs @@ -26,7 +26,7 @@ using Microsoft.WindowsAzure.Management.Automation; using Microsoft.WindowsAzure.Management.Automation.Models; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Newtonsoft.Json; using Runbook = Microsoft.Azure.Commands.Automation.Model.Runbook; @@ -43,7 +43,7 @@ namespace Microsoft.Azure.Commands.Automation.Common { using AutomationManagement = WindowsAzure.Management.Automation; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Hyak.Common; diff --git a/src/ServiceManagement/Automation/Commands.Automation/Common/IAutomationClient.cs b/src/ServiceManagement/Automation/Commands.Automation/Common/IAutomationClient.cs index c3340971401d..66c43f63cba8 100644 --- a/src/ServiceManagement/Automation/Commands.Automation/Common/IAutomationClient.cs +++ b/src/ServiceManagement/Automation/Commands.Automation/Common/IAutomationClient.cs @@ -17,7 +17,7 @@ using System.Collections.Generic; using System.Security; using Microsoft.Azure.Commands.Automation.Model; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.Azure.Commands.Automation.Common { diff --git a/src/ServiceManagement/Automation/Commands.Automation/packages.config b/src/ServiceManagement/Automation/Commands.Automation/packages.config index 2b7b2c57251a..8a9bbcdc1ee1 100644 --- a/src/ServiceManagement/Automation/Commands.Automation/packages.config +++ b/src/ServiceManagement/Automation/Commands.Automation/packages.config @@ -2,7 +2,6 @@ - @@ -10,8 +9,8 @@ - - + + diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Commands.Common.Test.csproj b/src/ServiceManagement/Common/Commands.Common.Test/Commands.Common.Test.csproj index 1320be72792c..715a8f80e416 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Commands.Common.Test.csproj +++ b/src/ServiceManagement/Common/Commands.Common.Test/Commands.Common.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ ..\..\..\ true {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 9ff8fb41 + 167c4c74 true @@ -56,10 +57,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -71,12 +68,12 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - + False - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -99,12 +96,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -168,12 +165,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -207,6 +212,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/AuthenticationFactoryTests.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/AuthenticationFactoryTests.cs index 4b4c290dcc3c..f276b4b874ea 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/AuthenticationFactoryTests.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/AuthenticationFactoryTests.cs @@ -15,10 +15,10 @@ using System.Collections.Generic; using Xunit; using System; -using Microsoft.Azure.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Factories; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ScenarioTest; namespace Microsoft.WindowsAzure.Commands.Common.Test.Common diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/ConversionUtilitiesTests.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/ConversionUtilitiesTests.cs index 87314b849519..07d789885e56 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/ConversionUtilitiesTests.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/ConversionUtilitiesTests.cs @@ -15,7 +15,7 @@ using System.Collections.Generic; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.ScenarioTest; namespace Microsoft.WindowsAzure.Commands.Common.Test diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/Data.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/Data.cs index 65a7e521ebbd..d2a32c7deac5 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/Data.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/Data.cs @@ -20,7 +20,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/GeneralTests.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/GeneralTests.cs index 28f542f5e29d..ecf4d84ca247 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/GeneralTests.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/GeneralTests.cs @@ -16,7 +16,7 @@ using System.IO; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.ScenarioTest; namespace Microsoft.WindowsAzure.Commands.Common.Test.Common diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/GetTestResource.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/GetTestResource.cs index 8653d830c435..ecdae266f54a 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/GetTestResource.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/GetTestResource.cs @@ -12,8 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management; using System.Management.Automation; diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/JsonUtilitiesTests.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/JsonUtilitiesTests.cs index f38950eff747..c7d4e43ddf7e 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/JsonUtilitiesTests.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/JsonUtilitiesTests.cs @@ -19,7 +19,7 @@ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.ScenarioTest; namespace Microsoft.WindowsAzure.Commands.Common.Test.Common diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/MockSubsciptionFactory.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/MockSubsciptionFactory.cs index 300b9bef83ed..8572aec6ff4e 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/MockSubsciptionFactory.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/MockSubsciptionFactory.cs @@ -17,31 +17,32 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using System.Net.Http; using System.Net.Http.Headers; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Common.Test.Common { public class MockSubsciptionFactory : IClientFactory { - public void AddAction(Azure.Common.Authentication.Models.IClientAction action) + public void AddAction(IClientAction action) { throw new NotImplementedException(); } - public TClient CreateClient(Azure.Common.Authentication.Models.AzureSMProfile profile, Azure.Common.Authentication.Models.AzureSubscription subscription, Azure.Common.Authentication.Models.AzureEnvironment.Endpoint endpoint) where TClient : Hyak.Common.ServiceClient + public TClient CreateClient(AzureSMProfile profile, AzureSubscription subscription, AzureEnvironment.Endpoint endpoint) where TClient : Hyak.Common.ServiceClient { throw new NotImplementedException(); } - public TClient CreateClient(Azure.Common.Authentication.Models.AzureSMProfile profile, Azure.Common.Authentication.Models.AzureEnvironment.Endpoint endpoint) where TClient : Hyak.Common.ServiceClient + public TClient CreateClient(AzureSMProfile profile, AzureEnvironment.Endpoint endpoint) where TClient : Hyak.Common.ServiceClient { throw new NotImplementedException(); } - public TClient CreateClient(Azure.Common.Authentication.Models.AzureContext context, Azure.Common.Authentication.Models.AzureEnvironment.Endpoint endpoint) where TClient : Hyak.Common.ServiceClient + public TClient CreateClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : Hyak.Common.ServiceClient { throw new NotImplementedException(); } @@ -89,7 +90,7 @@ public void AddUserAgent(string productName) public HashSet UserAgents { get; set; } - public TClient CreateArmClient(Azure.Common.Authentication.Models.AzureContext context, Azure.Common.Authentication.Models.AzureEnvironment.Endpoint endpoint) where TClient : Microsoft.Rest.ServiceClient + public TClient CreateArmClient(AzureContext context, AzureEnvironment.Endpoint endpoint) where TClient : Microsoft.Rest.ServiceClient { throw new NotImplementedException(); } diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/PSCmdletTests.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/PSCmdletTests.cs index 91b2deadd50c..ae994ce1dbed 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/PSCmdletTests.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/PSCmdletTests.cs @@ -17,7 +17,7 @@ using System.Linq; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.Azure.Management.Resources; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; @@ -26,7 +26,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Factories; using System.Net.Http; namespace Microsoft.WindowsAzure.Commands.Common.Test.Common diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/ProfileClientTests.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/ProfileClientTests.cs index 9b7c7051491e..d17327bd538f 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/ProfileClientTests.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/ProfileClientTests.cs @@ -12,8 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Subscriptions.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using System; @@ -21,6 +21,7 @@ using System.IO; using System.Linq; using System.Security.Cryptography.X509Certificates; +using Microsoft.Azure.ServiceManagemenet.Common; using Xunit; using CSMSubscription = Microsoft.Azure.Subscriptions.Models.Subscription; using RDFESubscription = Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionListOperationResponse.Subscription; diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/RemoveAzurePublishSettings.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/RemoveAzurePublishSettings.cs index aea3d567dfd0..98cc0bd86704 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/RemoveAzurePublishSettings.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/RemoveAzurePublishSettings.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Common; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/ServicePrincipalStoreTests.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/ServicePrincipalStoreTests.cs index 7413e8fbc9d2..d41f59b839ea 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/ServicePrincipalStoreTests.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/ServicePrincipalStoreTests.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.ScenarioTest; using System; using System.Runtime.InteropServices; diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Common/Testing.cs b/src/ServiceManagement/Common/Commands.Common.Test/Common/Testing.cs index aa441770f3d4..002175ca8ecd 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Common/Testing.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Common/Testing.cs @@ -88,7 +88,7 @@ public static void AssertThrows(Action action, string expectedMessage) /// Path to the resource. public static string GetAssemblyTestResourcePath(string relativePath) { - string path = Path.Combine(Environment.CurrentDirectory, relativePath); + string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, relativePath); try { EmbeddedFileWriter.WriteResourceToDisk(relativePath, path); diff --git a/src/ServiceManagement/Common/Commands.Common.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/Common/Commands.Common.Test/Properties/AssemblyInfo.cs index 354be543b44b..6f2349821748 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/Common/Commands.Common.Test/Properties/AssemblyInfo.cs @@ -28,6 +28,7 @@ [assembly: Guid("080bc9b8-3c00-4d0e-bec2-38d2fd0d7061")] [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] #if SIGN [assembly: InternalsVisibleTo("Microsoft.WindowsAzure.Commands.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] diff --git a/src/ServiceManagement/Common/Commands.Common.Test/packages.config b/src/ServiceManagement/Common/Commands.Common.Test/packages.config index 6bf38e990c1c..b3778c725d74 100644 --- a/src/ServiceManagement/Common/Commands.Common.Test/packages.config +++ b/src/ServiceManagement/Common/Commands.Common.Test/packages.config @@ -2,12 +2,11 @@ - - - + + @@ -16,8 +15,8 @@ - - + + @@ -26,8 +25,11 @@ - - - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/AutomationTests/AutomationTests.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/AutomationTests/AutomationTests.cs index 77a896390d9e..33669ca6cbfd 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/AutomationTests/AutomationTests.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/AutomationTests/AutomationTests.cs @@ -19,7 +19,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Test; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.ScenarioTest { diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Commands.ScenarioTest.csproj b/src/ServiceManagement/Common/Commands.ScenarioTest/Commands.ScenarioTest.csproj index df37c366081e..be769ee999f0 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Commands.ScenarioTest.csproj +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Commands.ScenarioTest.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,7 +17,7 @@ {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} ..\..\..\ true - fd20f8bd + af45439e true @@ -46,10 +47,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -62,10 +59,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -87,12 +84,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -166,12 +163,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -551,6 +556,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {58a78f29-8c0c-4a5e-893e-3953c0f29c8a} Commands.ServiceManagement.Test diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Common/PowerShellTest.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/Common/PowerShellTest.cs index 20ff0087ded7..50226602f880 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Common/PowerShellTest.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Common/PowerShellTest.cs @@ -20,7 +20,7 @@ using Microsoft.WindowsAzure.Commands.Common.Test.Common; using Microsoft.WindowsAzure.Commands.ScenarioTest.Resources; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.Common { @@ -96,6 +96,7 @@ public virtual void TestSetup() { powershell = System.Management.Automation.PowerShell.Create(); + powershell.AddScript("$error.clear()"); foreach (string moduleName in modules) { powershell.AddScript(string.Format("Import-Module \"{0}\"", Test.Utilities.Common.Testing.GetAssemblyTestResourcePath(moduleName))); diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Common/ServiceManagementTestEnvironmentFactory.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/Common/ServiceManagementTestEnvironmentFactory.cs index 914cefc0ccb6..f9f7fb6fce85 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Common/ServiceManagementTestEnvironmentFactory.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Common/ServiceManagementTestEnvironmentFactory.cs @@ -19,12 +19,10 @@ using System.Linq; using System.Security.Cryptography.X509Certificates; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.XmlSchema; +using Microsoft.Azure.Commands.Common.Authentication; using Hyak.Common; using Microsoft.Azure; +using Microsoft.Azure.ServiceManagement.Common.XmlSchema; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.Common { @@ -67,13 +65,13 @@ public class ServiceManagementTestEnvironmentFactory : TestEnvironmentFactory /// /// Get certificate test credentials and target management URI from environment variables /// - /// A test environment containg credentials and target URI, or null if no environment is found + /// A test environment containing credentials and target URI, or null if no environment is found protected virtual TestEnvironment GetCertificateTestEnvironment() { TestEnvironment environment = null; string testConnectionString = Environment.GetEnvironmentVariable(TestCertificateConnectionStringKey); string testPublishSettingsString = Environment.GetEnvironmentVariable(TestPublishSettingsFileKey); - string defaultPublishSettingsFile = Path.Combine(Environment.CurrentDirectory, DefaultPublishsettingsFilename); + string defaultPublishSettingsFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, DefaultPublishsettingsFilename); if (File.Exists(defaultPublishSettingsFile)) { TracingAdapter.Information("Getting credentials from local publishsettings file: {0}", defaultPublishSettingsFile); diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Common/TokenCloudCredentialsHelper.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/Common/TokenCloudCredentialsHelper.cs index 6d35bafe9d2c..f7483fb94c7a 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Common/TokenCloudCredentialsHelper.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Common/TokenCloudCredentialsHelper.cs @@ -235,7 +235,7 @@ private static void EnsureTokenCreationEnvironment() { if (!TokenCreationEnvironmentInitialized()) { - string zipFilePath = Path.Combine(Environment.CurrentDirectory, Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".zip"); + string zipFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".zip"); CopyResourceToFile(TokenCreationResourceName, zipFilePath); ExtractZipFile(zipFilePath, JsTokenCodeLocation); } diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Common/WindowsAzurePowerShellCertificateTest.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/Common/WindowsAzurePowerShellCertificateTest.cs index 75563d7c58bd..dd868f93b38f 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Common/WindowsAzurePowerShellCertificateTest.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Common/WindowsAzurePowerShellCertificateTest.cs @@ -22,8 +22,8 @@ using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Test; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.Common { @@ -52,7 +52,7 @@ public AzurePowerShellCertificateTest(params string[] modules) if (this.runningMocked) { AzureSession.AuthenticationFactory = new MockTokenAuthenticationFactory(); - string dummyCredentialFile = Path.Combine(Environment.CurrentDirectory, TestCredentialHelper.DefaultCredentialFile); + string dummyCredentialFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, TestCredentialHelper.DefaultCredentialFile); if (!File.Exists(dummyCredentialFile)) { AzureSession.DataStore.WriteFile(dummyCredentialFile, Properties.Resources.RdfeTestDummy); @@ -61,7 +61,7 @@ public AzurePowerShellCertificateTest(params string[] modules) } else { - this.credentials = new TestCredentialHelper(Environment.CurrentDirectory); + this.credentials = new TestCredentialHelper(AppDomain.CurrentDomain.BaseDirectory); this.credentialFile = TestCredentialHelper.DefaultCredentialFile; this.profileFile = TestCredentialHelper.WindowsAzureProfileFile; } diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/AddAccountForArmTests.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/AddAccountForArmTests.cs index 4bbe3c544681..cc51fa0365aa 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/AddAccountForArmTests.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/AddAccountForArmTests.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Xunit; using Xunit.Extensions; diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/CredentialTestBase.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/CredentialTestBase.cs index d731e743012f..f152a946eef8 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/CredentialTestBase.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/CredentialTestBase.cs @@ -16,7 +16,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.CredentialTests { diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/CredentialTestHelper.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/CredentialTestHelper.cs index ec37c894bf45..8fdca9d93b27 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/CredentialTestHelper.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/CredentialTests/CredentialTestHelper.cs @@ -19,8 +19,9 @@ using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using System.IO; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.CredentialTests { @@ -98,13 +99,18 @@ public virtual Collection RunPowerShellTest(params string[] scripts) private void SetupPowerShellModules(System.Management.Automation.PowerShell powershell) { - powershell.AddScript(string.Format("cd \"{0}\"", Environment.CurrentDirectory)); + powershell.AddScript("$error.clear()"); + powershell.AddScript(string.Format("cd \"{0}\"", AppDomain.CurrentDomain.BaseDirectory)); foreach (string moduleName in modules) { - powershell.AddScript(string.Format("Import-Module \".\\{0}\"", moduleName)); + powershell.AddScript(string.Format("Import-Module \"{0}\"", + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, moduleName))); } + powershell.AddScript( + string.Format(@"set-location {0}", AppDomain.CurrentDomain.BaseDirectory)); + powershell.AddScript(string.Format(@"$TestOutputRoot='{0}'", AppDomain.CurrentDomain.BaseDirectory)); powershell.AddScript("$VerbosePreference='Continue'"); powershell.AddScript("$DebugPreference='Continue'"); powershell.AddScript("$ErrorActionPreference='Stop'"); diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/DiagnosticsExtension/DiagnosticsExtensionTests.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/DiagnosticsExtension/DiagnosticsExtensionTests.cs index 673206220644..80e8305051db 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/DiagnosticsExtension/DiagnosticsExtensionTests.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/DiagnosticsExtension/DiagnosticsExtensionTests.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Management; diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/DscExtension/DscExtensionTests.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/DscExtension/DscExtensionTests.cs index 93edb1a08323..807f85a8d325 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/DscExtension/DscExtensionTests.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/DscExtension/DscExtensionTests.cs @@ -22,7 +22,7 @@ using Microsoft.WindowsAzure.Management.Network; using Microsoft.WindowsAzure.Management.Storage; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.ScenarioTest { diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Properties/AssemblyInfo.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/Properties/AssemblyInfo.cs index 0aebc980b6f5..be66e340964e 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Properties/AssemblyInfo.cs @@ -43,3 +43,4 @@ // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/DiagnosticsExtension/DiagnosticsExtensionTests.ps1 b/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/DiagnosticsExtension/DiagnosticsExtensionTests.ps1 index 0606cf305157..a5b3e4891825 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/DiagnosticsExtension/DiagnosticsExtensionTests.ps1 +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/DiagnosticsExtension/DiagnosticsExtensionTests.ps1 @@ -22,20 +22,20 @@ function Test-AzureServiceDiagnosticsExtensionBasic $testMode = Get-ComputeTestMode; if ($testMode.ToLower() -ne 'playback') { - $cscpkg = '.\Resources\ServiceManagement\Files\OneWebOneWorker.cspkg'; + $cscpkg = "$TestOutputRoot\Resources\ServiceManagement\Files\OneWebOneWorker.cspkg"; } else { $cscpkg = "https://${storageName}.blob.azure.windows.net/blob/OneWebOneWorker.cspkg"; } - $cscfg = '.\Resources\ServiceManagement\Files\OneWebOneWorker.cscfg' + $cscfg = "$TestOutputRoot\Resources\ServiceManagement\Files\OneWebOneWorker.cscfg" New-AzureService -ServiceName $svcName -Location $location New-AzureDeployment -ServiceName $svcName -Slot Production -Package $cscpkg -Configuration $cscfg $extension = Get-AzureServiceDiagnosticsExtension -ServiceName $svcName Assert-Null $extension "The default deployment shouldn't have diagnostics extension enabled" - $configFilePath = '.\Resources\DiagnosticsExtension\Files\CloudServiceConfig.xml' + $configFilePath = "$TestOutputRoot\Resources\DiagnosticsExtension\Files\CloudServiceConfig.xml" Set-AzureServiceDiagnosticsExtension -ServiceName $svcName -StorageAccountName $storageName -DiagnosticsConfigurationPath $configFilePath $extension = Get-AzureServiceDiagnosticsExtension -ServiceName $svcName Assert-NotNull $extension "Diagnostics extension should be enabled" @@ -79,20 +79,20 @@ function Test-AzureServiceDiagnosticsExtensionConfigurationArray $testMode = Get-ComputeTestMode; if ($testMode.ToLower() -ne 'playback') { - $cscpkg = '.\Resources\ServiceManagement\Files\OneWebOneWorker.cspkg'; + $cscpkg = "$TestOutputRoot\Resources\ServiceManagement\Files\OneWebOneWorker.cspkg"; } else { $cscpkg = "https://${storageName}.blob.azure.windows.net/blob/OneWebOneWorker.cspkg"; } - $cscfg = '.\Resources\ServiceManagement\Files\OneWebOneWorker.cscfg' + $cscfg = "$TestOutputRoot\Resources\ServiceManagement\Files\OneWebOneWorker.cscfg" New-AzureService -ServiceName $svcName -Location $location New-AzureDeployment -ServiceName $svcName -Slot Production -Package $cscpkg -Configuration $cscfg - $xmlConfig = '.\Resources\DiagnosticsExtension\Files\CloudServiceConfig.xml' + $xmlConfig = "$TestOutputRoot\Resources\DiagnosticsExtension\Files\CloudServiceConfig.xml" $workerRoleConfig = New-AzureServiceDiagnosticsExtensionConfig -Role "WorkerRole1" -StorageAccountName $storageName -DiagnosticsConfigurationPath $xmlConfig - $wadcfgxConfig = '.\Resources\DiagnosticsExtension\Files\diagnostics.wadcfgx' + $wadcfgxConfig = "$TestOutputRoot\Resources\DiagnosticsExtension\Files\diagnostics.wadcfgx" $webRoleConfig = New-AzureServiceDiagnosticsExtensionConfig -Role "WebRole1" -StorageAccountName $storageName -DiagnosticsConfigurationPath $wadcfgxConfig Set-AzureServiceDiagnosticsExtension -ServiceName $svcName -DiagnosticsConfiguration @($workerRoleConfig, $webRoleConfig) diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/RemoteApp/RemoteAppCI_Test.ps1 b/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/RemoteApp/RemoteAppCI_Test.ps1 index 597728053050..c9aff306d4ce 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/RemoteApp/RemoteAppCI_Test.ps1 +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/RemoteApp/RemoteAppCI_Test.ps1 @@ -71,7 +71,10 @@ function CreateCloudCollection([string] $Collection) do { Write-Verbose "Waiting current time: $(Get-Date)" - sleep -Seconds (PollingInterval) + + if ($env:AZURE_TEST_MODE -eq "Record"){ + sleep -Seconds (PollingInterval) + } $collectionState = Get-AzureRemoteAppOperationResult -TrackingId $trackIdCollection.TrackingId -ErrorAction SilentlyContinue -ErrorVariable er if ($? -eq $false) @@ -205,7 +208,9 @@ function UnpublishRemoteApplications([string] $Collection, [string[]] $applicati } } - Sleep 60 # seconds + if ($env:AZURE_TEST_MODE -eq "Record"){ + Sleep 60 # seconds + } $remainingApps = Get-AzureRemoteAppProgram $Collection | % Alias $failedToUnpublish = $remainingApps | ? {$applications -contains $_} @@ -224,8 +229,9 @@ function DeleteRemoteAppCollection([string] $Collection) do { Write-Verbose "Waiting current time: $(Get-Date)" - sleep -Seconds (PollingInterval) - + if ($env:AZURE_TEST_MODE -eq "Record"){ + sleep -Seconds (PollingInterval) + } $collectionState = Get-AzureRemoteAppOperationResult -TrackingId $trackIdCollection.TrackingId -ErrorAction SilentlyContinue -ErrorVariable er if ($? -eq $false) { diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/Scaffolding.ps1 b/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/Scaffolding.ps1 index d34bf070f235..d3782b38840a 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/Scaffolding.ps1 +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/Scaffolding.ps1 @@ -12,12 +12,12 @@ # limitations under the License. # ---------------------------------------------------------------------------------- -.".\Common.ps1" +."$TestOutputRoot\Common.ps1" -$CloudConfig=".\ServiceConfiguration.Cloud.cscfg" -$LocalConfig=".\ServiceConfiguration.Local.cscfg" -$ServiceDefinition=".\ServiceDefinition.csdef" -$DeploymentSettings=".\DeploymentSettings.json" +$CloudConfig="$TestOutputRoot\ServiceConfiguration.Cloud.cscfg" +$LocalConfig="$TestOutputRoot\ServiceConfiguration.Local.cscfg" +$ServiceDefinition="$TestOutputRoot\ServiceDefinition.csdef" +$DeploymentSettings="$TestOutputRoot\DeploymentSettings.json" function Create-Service { diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/ServiceManagement/ServiceManagementTests.ps1 b/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/ServiceManagement/ServiceManagementTests.ps1 index 23cf0b93cfe7..5b830146bf99 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/ServiceManagement/ServiceManagementTests.ps1 +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Resources/ServiceManagement/ServiceManagementTests.ps1 @@ -411,7 +411,7 @@ function Run-AutoGeneratedServiceExtensionCmdletTests { $cspkg = "https://${storageName}.blob.azure.windows.net/blob/OneWebOneWorker.cspkg"; } - $cscfg = '.\Resources\ServiceManagement\Files\OneWebOneWorker.cscfg'; + $cscfg = "$TestOutputRoot\Resources\ServiceManagement\Files\OneWebOneWorker.cscfg"; $st = New-AzureDeployment -ServiceName $svcName -Package $cspkg -Configuration $cscfg -Label $svcName -Slot Production; @@ -500,7 +500,7 @@ function Run-ServiceExtensionSetCmdletTests { $cspkg = "https://${storageName}.blob.azure.windows.net/blob/OneWebOneWorker.cspkg"; } - $cscfg = '.\Resources\ServiceManagement\Files\OneWebOneWorker.cscfg'; + $cscfg = "$TestOutputRoot\Resources\ServiceManagement\Files\OneWebOneWorker.cscfg"; # Staging 1st $st = New-AzureDeployment -ServiceName $svcName -Package $cspkg -Configuration $cscfg -Label $svcName -Slot Staging; @@ -556,13 +556,13 @@ function Run-ServiceDeploymentExtensionCmdletTests $testMode = Get-ComputeTestMode; if ($testMode.ToLower() -ne 'playback') { - $cspkg = '.\Resources\ServiceManagement\Files\LongRoleName.Cloud.cspkg'; + $cspkg = "$TestOutputRoot\Resources\ServiceManagement\Files\LongRoleName.Cloud.cspkg"; } else { $cspkg = "https://${storageName}.blob.azure.windows.net/blob/LongRoleName.Cloud.cspkg"; } - $cscfg = '.\Resources\ServiceManagement\Files\LongRoleName.Cloud.cscfg'; + $cscfg = "$TestOutputRoot\Resources\ServiceManagement\Files\LongRoleName.Cloud.cscfg"; $webRoleNameWithSpaces = "WebRole1 With Spaces In Name"; $workerRoleLongName = "Microsoft.Contoso.Department.ProjectCodeName.Worker"; diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/Scheduler/SchedulerTests.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/Scheduler/SchedulerTests.cs index b84d3bf03a14..d87e65142727 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/Scheduler/SchedulerTests.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/Scheduler/SchedulerTests.cs @@ -20,7 +20,8 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Test; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using System; namespace Microsoft.WindowsAzure.Commands.ScenarioTest { @@ -50,7 +51,7 @@ protected void RunPowerShellTest(params string[] scripts) SetupManagementClients(); - List modules = Directory.GetFiles("Resources\\Scheduler", "*.ps1").ToList(); + List modules = Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources\\Scheduler"), "*.ps1").ToList(); modules.Add("Common.ps1"); modules.Add(@"..\..\..\..\..\Package\Debug\ServiceManagement\Azure\Azure.psd1"); diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/ServiceManagement/ServiceManagementTests.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/ServiceManagement/ServiceManagementTests.cs index 9fe205c03c4d..3791840ee312 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/ServiceManagement/ServiceManagementTests.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/ServiceManagement/ServiceManagementTests.cs @@ -12,12 +12,13 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Management; using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Network; using Microsoft.WindowsAzure.Management.Storage; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -51,7 +52,7 @@ protected void RunPowerShellTest(params string[] scripts) SetupManagementClients(); - List modules = Directory.GetFiles(@"Resources\ServiceManagement", "*.ps1").ToList(); + List modules = Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\ServiceManagement"), "*.ps1").ToList(); modules.Add("Common.ps1"); modules.Add(@"..\..\..\..\..\Package\Debug\ServiceManagement\Azure\Azure.psd1"); modules.Add(@"..\..\..\..\..\Package\Debug\ServiceManagement\Azure\Compute\AzurePreview.psd1"); diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/TrafficManagerTests/TrafficManagerTests.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/TrafficManagerTests/TrafficManagerTests.cs index 1db0072aecdf..b9a72630e9e5 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/TrafficManagerTests/TrafficManagerTests.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/TrafficManagerTests/TrafficManagerTests.cs @@ -20,7 +20,8 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.Azure.Test; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using System; namespace Microsoft.WindowsAzure.Commands.ScenarioTest { @@ -272,7 +273,7 @@ protected void RunPowerShellTest(params string[] scripts) SetupManagementClients(); - List modules = Directory.GetFiles("Resources\\TrafficManager", "*.ps1").ToList(); + List modules = Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources\\TrafficManager"), "*.ps1").ToList(); modules.Add("Common.ps1"); modules.Add(@"..\..\..\..\..\Package\Debug\ServiceManagement\Azure\Azure.psd1"); diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/WebsitesTests/WebsitesTestsBase.cs b/src/ServiceManagement/Common/Commands.ScenarioTest/WebsitesTests/WebsitesTestsBase.cs index a3a67be61971..b7f97d4e5500 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/WebsitesTests/WebsitesTestsBase.cs +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/WebsitesTests/WebsitesTestsBase.cs @@ -20,7 +20,7 @@ using Microsoft.WindowsAzure.Management.Storage; using Microsoft.WindowsAzure.Management.WebSites; using Microsoft.Azure.Test; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.ScenarioTest.WebsitesTests { diff --git a/src/ServiceManagement/Common/Commands.ScenarioTest/packages.config b/src/ServiceManagement/Common/Commands.ScenarioTest/packages.config index 15923f5ea852..1681b1079b72 100644 --- a/src/ServiceManagement/Common/Commands.ScenarioTest/packages.config +++ b/src/ServiceManagement/Common/Commands.ScenarioTest/packages.config @@ -2,12 +2,11 @@ - - - + + @@ -16,8 +15,8 @@ - - + + @@ -27,7 +26,11 @@ - - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/AzureSMCmdlet.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/AzureSMCmdlet.cs index d120c2259d6c..0d7b7eb29278 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/AzureSMCmdlet.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/AzureSMCmdlet.cs @@ -18,8 +18,8 @@ using System.Diagnostics; using System.IO; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.IdentityModel.Clients.ActiveDirectory; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Common.Properties; @@ -27,6 +27,8 @@ using System.Threading; using System.Management.Automation.Host; using System.Globalization; +using System.Net.Http.Headers; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { @@ -52,6 +54,7 @@ private get } } + protected override AzureContext DefaultContext { get { return CurrentProfile.Context; } } static AzureSMCmdlet() @@ -126,7 +129,7 @@ protected override void InitializeQosEvent() commandAlias = this.MyInvocation.MyCommand.Name; } - QosEvent = new AzurePSQoSEvent() + _qosEvent = new AzurePSQoSEvent() { CommandName = commandAlias, ModuleName = this.GetType().Assembly.GetName().Name, @@ -138,7 +141,7 @@ protected override void InitializeQosEvent() if (this.MyInvocation != null && this.MyInvocation.BoundParameters != null) { - QosEvent.Parameters = string.Join(" ", + _qosEvent.Parameters = string.Join(" ", this.MyInvocation.BoundParameters.Keys.Select( s => string.Format(CultureInfo.InvariantCulture, "-{0} ***", s))); } @@ -147,12 +150,12 @@ protected override void InitializeQosEvent() this.DefaultContext.Account != null && this.DefaultContext.Account.Id != null) { - QosEvent.Uid = MetricHelper.GenerateSha256HashString( + _qosEvent.Uid = MetricHelper.GenerateSha256HashString( this.DefaultContext.Account.Id.ToString()); } else { - QosEvent.Uid = "defaultid"; + _qosEvent.Uid = "defaultid"; } } @@ -179,5 +182,23 @@ protected virtual void InitializeProfile() AzureSMProfileProvider.Instance.SetTokenCacheForProfile(Profile); } } + + protected override void LogCmdletStartInvocationInfo() + { + base.LogCmdletStartInvocationInfo(); + if (DefaultContext != null && DefaultContext.Account != null + && DefaultContext.Account.Id != null) + { + WriteDebugWithTimestamp(string.Format("using account id '{0}'...", + DefaultContext.Account.Id)); + } + } + + protected override void LogCmdletEndInvocationInfo() + { + base.LogCmdletEndInvocationInfo(); + string message = string.Format("{0} end processing.", this.GetType().Name); + WriteDebugWithTimestamp(message); + } } } diff --git a/src/Common/Commands.Common/AzureSubscriptionExtensions.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/AzureSubscriptionExtensions.cs similarity index 93% rename from src/Common/Commands.Common/AzureSubscriptionExtensions.cs rename to src/ServiceManagement/Common/Commands.ServiceManagement.Common/AzureSubscriptionExtensions.cs index 7be35662bc98..0bd204a52a8e 100644 --- a/src/Common/Commands.Common/AzureSubscriptionExtensions.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/AzureSubscriptionExtensions.cs @@ -13,11 +13,7 @@ // ---------------------------------------------------------------------------------- using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Common { diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/CloudBaseCmdlet.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/CloudBaseCmdlet.cs index d72f838a5cfa..3eb42161f612 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/CloudBaseCmdlet.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/CloudBaseCmdlet.cs @@ -20,8 +20,8 @@ using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Security; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/Commands.ServiceManagement.Common.csproj b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/Commands.ServiceManagement.Common.csproj index c7e0d7abe39b..c9d868b43cd6 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/Commands.ServiceManagement.Common.csproj +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/Commands.ServiceManagement.Common.csproj @@ -63,10 +63,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -83,6 +79,14 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll + True + + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll @@ -103,14 +107,6 @@ ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll - True - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll - True - @@ -143,8 +139,14 @@ + + + + + + @@ -155,6 +157,7 @@ + @@ -169,6 +172,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/HttpClientExtensions.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/HttpClientExtensions.cs index 4b75ea6ed796..02cb5fa042ee 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/HttpClientExtensions.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/HttpClientExtensions.cs @@ -17,7 +17,7 @@ using System.Net; using System.Net.Http; using System.Net.Http.Headers; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Common; using Newtonsoft.Json; diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/HttpRestMessageInspector.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/HttpRestMessageInspector.cs index 6d042451289c..84b3b3f45932 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/HttpRestMessageInspector.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/HttpRestMessageInspector.cs @@ -21,6 +21,7 @@ using System.ServiceModel.Dispatcher; using System.Threading; using System.Xml.Linq; +using Microsoft.WindowsAzure.Commands.Common; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { @@ -92,14 +93,14 @@ public HttpRestMessageInspector(Action logger) public virtual void AfterReceiveReply(ref Message reply, object correlationState) { HttpResponseMessageProperty prop = (HttpResponseMessageProperty)reply.Properties[HttpResponseMessageProperty.Name]; - string body = GeneralUtilities.ReadMessageBody(ref reply); + string body = ServiceManagementUtilities.ReadMessageBody(ref reply); logger(GeneralUtilities.GetHttpResponseLog(prop.StatusCode.ToString(), prop.Headers, body)); } public virtual object BeforeSendRequest(ref Message request, IClientChannel channel) { HttpRequestMessageProperty prop = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name]; - string body = GeneralUtilities.ReadMessageBody(ref request); + string body = ServiceManagementUtilities.ReadMessageBody(ref request); logger(GeneralUtilities.GetHttpRequestLog(prop.Method, request.Headers.To.AbsoluteUri, prop.Headers, body)); return request; diff --git a/src/Common/Commands.Common/PSAzureAccount.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/PSAzureAccount.cs similarity index 89% rename from src/Common/Commands.Common/PSAzureAccount.cs rename to src/ServiceManagement/Common/Commands.ServiceManagement.Common/PSAzureAccount.cs index c8d3f8f7c3ce..a9d9974e83a5 100644 --- a/src/Common/Commands.Common/PSAzureAccount.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/PSAzureAccount.cs @@ -13,8 +13,9 @@ // ---------------------------------------------------------------------------------- using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication.Models; -namespace Microsoft.Azure.Common.Authentication.Models +namespace Microsoft.Azure.ServiceManagemenet.Common.Models { public class PSAzureAccount { diff --git a/src/Common/Commands.Common/ProfileClient.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/ProfileClient.cs similarity index 99% rename from src/Common/Commands.Common/ProfileClient.cs rename to src/ServiceManagement/Common/Commands.ServiceManagement.Common/ProfileClient.cs index 1128d28ebb1d..42067d20c876 100644 --- a/src/Common/Commands.Common/ProfileClient.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/ProfileClient.cs @@ -20,13 +20,14 @@ using System.Security; using System.Security.Cryptography.X509Certificates; using Hyak.Common; -using Microsoft.Azure.Common.Authentication.Factories; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Common.Properties; -using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Subscriptions; -namespace Microsoft.Azure.Common.Authentication +namespace Microsoft.Azure.ServiceManagemenet.Common { /// /// Convenience client for azure profile and subscriptions. @@ -653,7 +654,7 @@ public AzureSubscription SetSubscriptionAsDefault(Guid id, string accountName) { if (subscription.IsPropertySet(AzureSubscription.Property.StorageAccount)) { - GeneralUtilities.ClearCurrentStorageAccount(); + ServiceManagementUtilities.ClearCurrentStorageAccount(); } Profile.DefaultSubscription = subscription; diff --git a/src/Common/Commands.Common/ProfileClientExtensions.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/ProfileClientExtensions.cs similarity index 93% rename from src/Common/Commands.Common/ProfileClientExtensions.cs rename to src/ServiceManagement/Common/Commands.ServiceManagement.Common/ProfileClientExtensions.cs index 6a33fdcdc430..33d279a5fd02 100644 --- a/src/Common/Commands.Common/ProfileClientExtensions.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/ProfileClientExtensions.cs @@ -12,9 +12,10 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common.Models; using System; using System.Collections.Generic; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Common { diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/PublishProfile.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/PublishProfile.cs new file mode 100644 index 000000000000..0ba815bb217d --- /dev/null +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/PublishProfile.cs @@ -0,0 +1,219 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17020 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System.Xml.Serialization; + +namespace Microsoft.Azure.ServiceManagement.Common.XmlSchema +{ + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [XmlType(AnonymousType = true)] + [XmlRoot(Namespace = "", IsNullable = false)] + public partial class PublishData + { + + private PublishDataPublishProfile[] itemsField; + + /// + [XmlElement("PublishProfile", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] + public PublishDataPublishProfile[] Items + { + get + { + return this.itemsField; + } + set + { + this.itemsField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [XmlType(AnonymousType = true)] + public partial class PublishDataPublishProfile + { + + private PublishDataPublishProfileSubscription[] subscriptionField; + + private string publishMethodField; + + private string urlField; + + private string managementCertificateField; + + private string SchemaVersionField; + + /// + [XmlElement("Subscription", Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] + public PublishDataPublishProfileSubscription[] Subscription + { + get + { + return this.subscriptionField; + } + set + { + this.subscriptionField = value; + } + } + + /// + [XmlAttribute()] + public string PublishMethod + { + get + { + return this.publishMethodField; + } + set + { + this.publishMethodField = value; + } + } + + /// + [XmlAttribute()] + public string Url + { + get + { + return this.urlField; + } + set + { + this.urlField = value; + } + } + + /// + [XmlAttribute()] + public string ManagementCertificate + { + get + { + return this.managementCertificateField; + } + set + { + this.managementCertificateField = value; + } + } + + /// + [XmlAttribute()] + public string SchemaVersion + { + get + { + return this.SchemaVersionField; + } + set + { + this.SchemaVersionField = value; + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")] + [System.SerializableAttribute()] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + [XmlType(AnonymousType = true)] + public partial class PublishDataPublishProfileSubscription + { + + private string idField; + + private string nameField; + + private string serviceManagementUrlField; + + private string managementCertificateField; + + /// + [XmlAttribute()] + public string Id + { + get + { + return this.idField; + } + set + { + this.idField = value; + } + } + + /// + [XmlAttribute()] + public string Name + { + get + { + return this.nameField; + } + set + { + this.nameField = value; + } + } + + /// + [XmlAttribute()] + public string ServiceManagementUrl + { + get + { + return this.serviceManagementUrlField; + } + set + { + this.serviceManagementUrlField = value; + } + } + + /// + [XmlAttribute()] + public string ManagementCertificate + { + get + { + return this.managementCertificateField; + } + set + { + this.managementCertificateField = value; + } + } + } +} \ No newline at end of file diff --git a/src/Common/Commands.Common/PublishSettingsImporter.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/PublishSettingsImporter.cs similarity index 91% rename from src/Common/Commands.Common/PublishSettingsImporter.cs rename to src/ServiceManagement/Common/Commands.ServiceManagement.Common/PublishSettingsImporter.cs index 1839624ec0c1..cd146cc1640c 100644 --- a/src/Common/Commands.Common/PublishSettingsImporter.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/PublishSettingsImporter.cs @@ -18,10 +18,11 @@ using System.Linq; using System.Security.Cryptography.X509Certificates; using System.Xml.Serialization; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication.XmlSchema; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagement.Common.XmlSchema; -namespace Microsoft.Azure.Common.Authentication +namespace Microsoft.Azure.ServiceManagemenet.Common { /// /// Class that handles loading publishsettings files @@ -29,7 +30,8 @@ namespace Microsoft.Azure.Common.Authentication /// public static class PublishSettingsImporter { - public static IEnumerable ImportAzureSubscription(Stream stream, ProfileClient azureProfileClient, string environment) + public static IEnumerable ImportAzureSubscription(Stream stream, + ProfileClient azureProfileClient, string environment) { var publishData = DeserializePublishData(stream); PublishDataPublishProfile profile = publishData.Items.Single(); diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/RPRegistrationAction.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/RPRegistrationAction.cs index 89cf09d85894..142116a2c285 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/RPRegistrationAction.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/RPRegistrationAction.cs @@ -17,10 +17,12 @@ using System.Linq; using System.Net; using Hyak.Common; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Management.Resources; using Microsoft.WindowsAzure.Management; -namespace Microsoft.Azure.Common.Authentication.Models +namespace Microsoft.Azure.ServiceManagemenet.Common.Models { public class RPRegistrationAction : IClientAction { diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/RequiredResourceLookup.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/RequiredResourceLookup.cs index 3feeb78e7526..a4b12a4e27e1 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/RequiredResourceLookup.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/RequiredResourceLookup.cs @@ -14,7 +14,7 @@ using System.Collections.Generic; -namespace Microsoft.Azure.Common.Authentication +namespace Microsoft.Azure.ServiceManagemenet.Common { /// /// This class handles mapping management client types diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/ServiceManagementUtilities.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/ServiceManagementUtilities.cs new file mode 100644 index 000000000000..8fb676d80c91 --- /dev/null +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/ServiceManagementUtilities.cs @@ -0,0 +1,80 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using System.ServiceModel.Channels; +using System.Text; +using System.Xml; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; + +namespace Microsoft.WindowsAzure.Commands.Common +{ + public static class ServiceManagementUtilities + { + public static string ReadMessageBody(ref Message originalMessage) + { + StringBuilder strBuilder = new StringBuilder(); + + using (MessageBuffer messageBuffer = originalMessage.CreateBufferedCopy(int.MaxValue)) + { + Message message = messageBuffer.CreateMessage(); + XmlWriter writer = XmlWriter.Create(strBuilder); + using (XmlDictionaryWriter dictionaryWriter = XmlDictionaryWriter.CreateDictionaryWriter(writer)) + { + message.WriteBodyContents(dictionaryWriter); + } + + originalMessage = messageBuffer.CreateMessage(); + } + + return XmlUtilities.Beautify(strBuilder.ToString()); + } + + /// + /// Ensure the default profile directory exists + /// + public static void EnsureDefaultProfileDirectoryExists() + { + if (!AzureSession.DataStore.DirectoryExists(AzureSession.ProfileDirectory)) + { + AzureSession.DataStore.CreateDirectory(AzureSession.ProfileDirectory); + } + } + + /// + /// Clear the current storage account from the context - guarantees that only one storage account will be active + /// at a time. + /// + public static void ClearCurrentStorageAccount() + { + //TODO: Move to RM + //var RMProfile = AzureRmProfileProvider.Instance.Profile; + //if (RMProfile != null && RMProfile.Context != null && + // RMProfile.Context.Subscription != null && RMProfile.Context.Subscription.IsPropertySet(AzureSubscription.Property.StorageAccount)) + //{ + // RMProfile.Context.Subscription.SetProperty(AzureSubscription.Property.StorageAccount, null); + //} + + var SMProfile = AzureSMProfileProvider.Instance.Profile; + if (SMProfile != null && SMProfile.Context != null + && SMProfile.Context.Subscription != null && + SMProfile.Context.Subscription.IsPropertySet( + AzureSubscription.Property.StorageAccount)) + { + SMProfile.Context.Subscription.SetProperty( + AzureSubscription.Property.StorageAccount, null); + } + } + } +} diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/SubscriptionCmdletBase.cs b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/SubscriptionCmdletBase.cs index 5b9549e47ea3..e4f5805b685f 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/SubscriptionCmdletBase.cs +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/SubscriptionCmdletBase.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.WindowsAzure.Commands.Utilities.Profile diff --git a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/packages.config b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/packages.config index 55769d13f483..223468584f83 100644 --- a/src/ServiceManagement/Common/Commands.ServiceManagement.Common/packages.config +++ b/src/ServiceManagement/Common/Commands.ServiceManagement.Common/packages.config @@ -4,7 +4,6 @@ - @@ -12,8 +11,8 @@ - - + + \ No newline at end of file diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/Commands.ServiceManagement.PlatformImageRepository.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/Commands.ServiceManagement.PlatformImageRepository.csproj index 9a3625aa5a14..7e40c6cfa99f 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/Commands.ServiceManagement.PlatformImageRepository.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/Commands.ServiceManagement.PlatformImageRepository.csproj @@ -65,10 +65,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -80,6 +76,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -100,12 +97,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -237,6 +234,10 @@ {cd5aa507-f5ef-473d-855b-84b91a1abe54} Commands + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/packages.config index 3c27aff765cb..28e9aed53b56 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.PlatformImageRepository/packages.config @@ -3,7 +3,6 @@ - @@ -15,8 +14,8 @@ - - + + diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Commands.ServiceManagement.Preview.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Commands.ServiceManagement.Preview.csproj index d0b008af425a..3714cf2628ee 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Commands.ServiceManagement.Preview.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/Commands.ServiceManagement.Preview.csproj @@ -66,10 +66,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -81,6 +77,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -101,12 +98,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -132,8 +129,8 @@ ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.12.5.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.7.0.4\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.7.0.4\lib\net40\Microsoft.WindowsAzure.Management.Network.dll ..\..\..\packages\Microsoft.WindowsAzure.Management.Storage.5.1.1\lib\net40\Microsoft.WindowsAzure.Management.Storage.dll @@ -312,6 +309,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {cff09e81-1e31-444e-b4d4-a21e946c29e2} Commands.ServiceManagement.Common diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/packages.config index 6060297113bd..ff6af35545be 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Preview/packages.config @@ -3,7 +3,6 @@ - @@ -15,8 +14,8 @@ - - + + diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Commands.ServiceManagement.Test.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Commands.ServiceManagement.Test.csproj index 79de3cc82f3d..b920dff40985 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Commands.ServiceManagement.Test.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Commands.ServiceManagement.Test.csproj @@ -1,6 +1,7 @@  - + + Debug AnyCPU @@ -20,8 +21,7 @@ ..\..\..\ true - - + 3d690ed1 true @@ -62,10 +62,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -78,9 +74,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -101,12 +98,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -180,12 +177,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -459,7 +464,7 @@ - + @@ -605,6 +610,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/AddAzureVhdSASUriTest.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/AddAzureVhdSASUriTest.cs index e7b98b52ff54..da6217070bb0 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/AddAzureVhdSASUriTest.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/AddAzureVhdSASUriTest.cs @@ -16,7 +16,7 @@ using System.IO; using System.Reflection; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Storage.Auth; using Microsoft.WindowsAzure.Storage.Blob; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/AddAzureVhdTest.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/AddAzureVhdTest.cs index c817e930b28f..120d88de3cbd 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/AddAzureVhdTest.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/AddAzureVhdTest.cs @@ -16,7 +16,7 @@ using System.IO; using System.Reflection; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Test.FunctionalTests { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/CredentialHelper.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/CredentialHelper.cs index 9f9e373fade5..8790838b0959 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/CredentialHelper.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/CredentialHelper.cs @@ -138,7 +138,7 @@ public static void GetTestSettings(string testSettings) { case "UseDefaults": default: - CredentialHelper.GetCredentialInfo(Environment.CurrentDirectory); + CredentialHelper.GetCredentialInfo(AppDomain.CurrentDomain.BaseDirectory); break; case "UseCustom": @@ -166,7 +166,7 @@ public static void GetTestSettings(string testSettings) break; case "UseDefaultsandOverride": - CredentialHelper.GetCredentialInfo(Environment.CurrentDirectory); + CredentialHelper.GetCredentialInfo(AppDomain.CurrentDomain.BaseDirectory); if (!string.IsNullOrWhiteSpace(Resource.PublishSettingsFile)) { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/FunctionalTest.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/FunctionalTest.cs index 78a2e226bbd3..ba5e6a7ddf30 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/FunctionalTest.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/FunctionalTest.cs @@ -26,7 +26,7 @@ using System.Xml; using Hyak.Common; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/GenericIaaSExtensionTests.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/GenericIaaSExtensionTests.cs index cac90f1d6021..5d87d0f02f37 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/GenericIaaSExtensionTests.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/GenericIaaSExtensionTests.cs @@ -22,7 +22,7 @@ using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Test.FunctionalTests.ConfigDataInfo; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Test.FunctionalTests { @@ -63,7 +63,7 @@ public void TestIntialize() testStartTime = DateTime.Now; GetVmAccessConfiguration(); referenceName = Utilities.GetUniqueShortName(referenceNamePrefix); - localPath = Path.Combine(Environment.CurrentDirectory, serviceName + ".xml").ToString(); + localPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, serviceName + ".xml").ToString(); } [TestCleanup] diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/SaveAzureVhdTest.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/SaveAzureVhdTest.cs index 8f8da078a683..90c99ef51ab5 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/SaveAzureVhdTest.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/SaveAzureVhdTest.cs @@ -16,7 +16,7 @@ using System.IO; using System.Reflection; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Sync.Download; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Test.FunctionalTests diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ScenarioTest.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ScenarioTest.cs index b0e835447589..1a4a07ad8d14 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ScenarioTest.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ScenarioTest.cs @@ -28,7 +28,7 @@ using System.Xml; using System.Xml.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Test.FunctionalTests.ConfigDataInfo; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ServiceManagementCmdletTestHelper.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ServiceManagementCmdletTestHelper.cs index 104126063e00..2e7bc01d4555 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ServiceManagementCmdletTestHelper.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ServiceManagementCmdletTestHelper.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.Profile.Models; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ServiceManagementTest.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ServiceManagementTest.cs index d2c5285e76f9..1d040f43561f 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ServiceManagementTest.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/ServiceManagementTest.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/Utilities.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/Utilities.cs index 8aa9a6b6e42b..9dd11d59db51 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/Utilities.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/FunctionalTests/Utilities.cs @@ -39,8 +39,8 @@ internal class Utilities { #region Constants - public static string windowsAzurePowershellPath = Path.Combine(Environment.CurrentDirectory, "ServiceManagement\\Azure"); - public static string windowsAzurePowershellDefaultPath = Environment.CurrentDirectory; + public static string windowsAzurePowershellPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ServiceManagement\\Azure"); + public static string windowsAzurePowershellDefaultPath = AppDomain.CurrentDomain.BaseDirectory; public const string windowsAzurePowershellServiceModule = "Azure.psd1"; public const string AzurePowershellModuleServiceManagementPirModule = "Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.dll"; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Properties/AssemblyInfo.cs index 9b023aef322d..4bcfd1404ee7 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/Properties/AssemblyInfo.cs @@ -1,6 +1,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -34,6 +35,7 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] #if SIGN [assembly: InternalsVisibleTo("Microsoft.WindowsAzure.Commands.ScenarioTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/packages.config index d352f0160a3c..35af3eec83f9 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement.Test/packages.config @@ -3,11 +3,10 @@ - - + @@ -16,8 +15,8 @@ - - + + @@ -27,7 +26,11 @@ - - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Commands.ServiceManagement.csproj b/src/ServiceManagement/Compute/Commands.ServiceManagement/Commands.ServiceManagement.csproj index d7ed5cea149b..79e1f472d89f 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Commands.ServiceManagement.csproj +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Commands.ServiceManagement.csproj @@ -67,10 +67,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -82,6 +78,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -102,12 +99,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -542,6 +539,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Common/DiagnosticsHelper.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Common/DiagnosticsHelper.cs index a12343621b4f..48cfad896586 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Common/DiagnosticsHelper.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Common/DiagnosticsHelper.cs @@ -19,7 +19,7 @@ using System.Text; using System.Xml; using System.Xml.Linq; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Management.Storage; using Microsoft.WindowsAzure.Management.Storage.Models; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/BaseAzureServiceDiagnosticsExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/BaseAzureServiceDiagnosticsExtension.cs index b368789d822b..5c4d7624ae84 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/BaseAzureServiceDiagnosticsExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Extensions/Diagnostics/BaseAzureServiceDiagnosticsExtension.cs @@ -115,22 +115,20 @@ protected override void ValidateConfiguration() } } - var publicConfigElem = DiagnosticsHelper.GetPublicConfigXElementFromXmlFile(this.DiagnosticsConfigurationPath); - if (publicConfigElem == null) - { - throw new ArgumentException(Resources.DiagnosticsExtensionNullPublicConfig); - } - publicConfigElem.SetAttributeValue("xmlns", XmlNamespace); - PublicConfiguration = publicConfigElem.ToString(); - XmlDocument doc = new XmlDocument(); XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); ns.AddNamespace("ns", XmlNamespace); doc.Load(DiagnosticsConfigurationPath); - // Make sure the configuration element exist - var configElement = doc.SelectSingleNode("//ns:WadCfg", ns) ?? doc.SelectSingleNode("//ns:WadCfgBlob", ns); - if (configElement == null) + // Make sure the configuration elements exist + var publicConfigElement = doc.SelectSingleNode("//ns:PublicConfig", ns); + if (publicConfigElement == null) + { + throw new ArgumentException(Resources.DiagnosticsExtensionNullPublicConfig); + } + + var wadConfigElement = doc.SelectSingleNode("//ns:WadCfg", ns) ?? doc.SelectSingleNode("//ns:WadCfgBlob", ns); + if (wadConfigElement == null) { throw new ArgumentException(Resources.DiagnosticsExtensionPaaSConfigElementNotDefined); } @@ -138,36 +136,27 @@ protected override void ValidateConfiguration() // The element is not meant to be set by the user in the public config. // Make sure it matches the storage account in the private config. var storageAccountElement = doc.SelectSingleNode("//ns:StorageAccount", ns); - if(storageAccountElement != null) + if (storageAccountElement == null) { - // The StorageAccount is empty, we must set it - if (string.IsNullOrEmpty(storageAccountElement.InnerText)) - { - storageAccountElement.InnerText = StorageAccountName; - PublicConfiguration = doc.OuterXml; - } - else if (!string.IsNullOrEmpty(storageAccountElement.InnerText) && string.Compare(storageAccountElement.InnerText, StorageAccountName, true) != 0) - { - throw new ArgumentException(Resources.DiagnosticsExtensionNoMatchStorageAccount); - } - } - else - { - // The StorageAccount is not there. we must set it + // The StorageAccount element is not there, we create one storageAccountElement = doc.CreateElement("StorageAccount", XmlNamespace); - storageAccountElement.InnerText = StorageAccountName; + wadConfigElement.ParentNode.AppendChild(storageAccountElement); + } - // Insert it after or - configElement.ParentNode.AppendChild(storageAccountElement); - PublicConfiguration = doc.OuterXml; + if (!string.IsNullOrEmpty(storageAccountElement.InnerText) && string.Compare(storageAccountElement.InnerText, StorageAccountName, true) != 0) + { + WriteWarning(Resources.DiagnosticsExtensionNoMatchStorageAccount); } + storageAccountElement.InnerText = StorageAccountName; + PublicConfiguration = publicConfigElement.OuterXml; + // Make sure the storage account name in PrivateConfig matches. var privateConfigStorageAccountName = DiagnosticsHelper.GetStorageAccountInfoFromPrivateConfig(this.DiagnosticsConfigurationPath, DiagnosticsHelper.PrivConfNameAttr); if (!string.IsNullOrEmpty(privateConfigStorageAccountName) && !string.Equals(StorageAccountName, privateConfigStorageAccountName, StringComparison.OrdinalIgnoreCase)) { - throw new ArgumentException(Resources.DiagnosticsExtensionNoMatchPrivateStorageAccount); + WriteWarning(Resources.DiagnosticsExtensionNoMatchPrivateStorageAccount); } PrivateConfigurationXml = new XDocument(PrivateConfigurationXmlTemplate); diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureDeployment.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureDeployment.cs index 6046108d14ec..9fd17d352152 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureDeployment.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/NewAzureDeployment.cs @@ -16,7 +16,7 @@ using System; using System.Management.Automation; using System.Net; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureDeployment.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureDeployment.cs index 4f94fad9a5a6..a5b8c13f1cea 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureDeployment.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/HostedServices/SetAzureDeployment.cs @@ -15,7 +15,7 @@ using System; using System.Management.Automation; using System.Net; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Disks/AddAzureDataDisk.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Disks/AddAzureDataDisk.cs index 0ca4f5dc3a39..f53723ada255 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Disks/AddAzureDataDisk.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Disks/AddAzureDataDisk.cs @@ -19,10 +19,10 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS { diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/SetAzureVMChefExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/SetAzureVMChefExtension.cs index 33f20d84c544..3e5959706da9 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/SetAzureVMChefExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/SetAzureVMChefExtension.cs @@ -102,6 +102,12 @@ public class SetAzureVMChefExtensionCommand : VirtualMachineChefExtensionCmdletB [ValidateNotNullOrEmpty] public string BootstrapVersion { get; set; } + [Parameter( + ValueFromPipelineByPropertyName = true, + HelpMessage = "Uninstall Chef client during update/uninstall extension. Default is false.")] + [ValidateNotNullOrEmpty] + public SwitchParameter UninstallChefClient { get; set; } + [Parameter( Mandatory = true, ParameterSetName = LinuxParameterSetName, @@ -174,6 +180,7 @@ private void SetPublicConfig() string AutoUpdateChefClient = this.AutoUpdateChefClient.IsPresent ? "true" : "false"; string DeleteChefConfig = this.DeleteChefConfig.IsPresent ? "true" : "false"; string BootstrapVersion = this.BootstrapVersion; + string UninstallChefClient = this.UninstallChefClient.IsPresent ? "true" : "false"; //Cases handled: // 1. When clientRb given by user and: @@ -227,42 +234,46 @@ private void SetPublicConfig() { if (IsBootstrapOptionsEmpty) { - this.PublicConfiguration = string.Format("{{{0},{1},{2},{3}}}", + this.PublicConfiguration = string.Format("{{{0},{1},{2},{3},{4}}}", string.Format(AutoUpdateTemplate, AutoUpdateChefClient), string.Format(DeleteChefConfigTemplate, DeleteChefConfig), string.Format(ClientRbTemplate, ClientConfig), - string.Format(BootstrapVersionTemplate, BootstrapVersion)); + string.Format(BootstrapVersionTemplate, BootstrapVersion), + string.Format(UninstallChefClientTemplate, UninstallChefClient)); } else { - this.PublicConfiguration = string.Format("{{{0},{1},{2},{3},{4}}}", + this.PublicConfiguration = string.Format("{{{0},{1},{2},{3},{4},{5}}}", string.Format(AutoUpdateTemplate, AutoUpdateChefClient), string.Format(DeleteChefConfigTemplate, DeleteChefConfig), string.Format(ClientRbTemplate, ClientConfig), string.Format(BootStrapOptionsTemplate, this.BootstrapOptions), - string.Format(BootstrapVersionTemplate, BootstrapVersion)); + string.Format(BootstrapVersionTemplate, BootstrapVersion), + string.Format(UninstallChefClientTemplate, UninstallChefClient)); } } else { if (IsBootstrapOptionsEmpty) { - this.PublicConfiguration = string.Format("{{{0},{1},{2},{3},{4}}}", + this.PublicConfiguration = string.Format("{{{0},{1},{2},{3},{4},{5}}}", string.Format(AutoUpdateTemplate, AutoUpdateChefClient), string.Format(DeleteChefConfigTemplate, DeleteChefConfig), string.Format(ClientRbTemplate, ClientConfig), string.Format(RunListTemplate, this.RunList), - string.Format(BootstrapVersionTemplate, BootstrapVersion)); + string.Format(BootstrapVersionTemplate, BootstrapVersion), + string.Format(UninstallChefClientTemplate, UninstallChefClient)); } else { - this.PublicConfiguration = string.Format("{{{0},{1},{2},{3},{4},{5}}}", + this.PublicConfiguration = string.Format("{{{0},{1},{2},{3},{4},{5},{6}}}", string.Format(AutoUpdateTemplate, AutoUpdateChefClient), string.Format(DeleteChefConfigTemplate, DeleteChefConfig), string.Format(ClientRbTemplate, ClientConfig), string.Format(RunListTemplate, this.RunList), string.Format(BootStrapOptionsTemplate, this.BootstrapOptions), - string.Format(BootstrapVersionTemplate, BootstrapVersion)); + string.Format(BootstrapVersionTemplate, BootstrapVersion), + string.Format(UninstallChefClientTemplate, UninstallChefClient)); } } } diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/VirtualMachineChefExtensionCmdletBase.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/VirtualMachineChefExtensionCmdletBase.cs index 2b74f5e681b7..4f293890a4d5 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/VirtualMachineChefExtensionCmdletBase.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Chef/VirtualMachineChefExtensionCmdletBase.cs @@ -26,6 +26,7 @@ public class VirtualMachineChefExtensionCmdletBase : VirtualMachineExtensionCmdl protected const string DeleteChefConfigTemplate = "\"deleteChefConfig\":\"{0}\""; protected const string ClientRbTemplate = "\"client_rb\":\"{0}\""; protected const string BootstrapVersionTemplate = "\"bootstrap_version\":\"{0}\""; + protected const string UninstallChefClientTemplate = "\"uninstallChefClient\":\"{0}\""; protected const string BootStrapOptionsTemplate = "\"bootstrap_options\":{0}"; protected const string RunListTemplate = "\"runlist\": \"\\\"{0}\\\"\""; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Common/VirtualMachineExtensionCmdletBase.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Common/VirtualMachineExtensionCmdletBase.cs index 4a9e8e6a3f15..65229573528a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Common/VirtualMachineExtensionCmdletBase.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/Common/VirtualMachineExtensionCmdletBase.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/SetAzureVMCustomScriptExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/SetAzureVMCustomScriptExtension.cs index 9333d2f6d08f..fe4f26862551 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/SetAzureVMCustomScriptExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/SetAzureVMCustomScriptExtension.cs @@ -16,14 +16,14 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.Storage.Auth; using Microsoft.WindowsAzure.Storage.Blob; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Management.Storage; namespace Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/VirtualMachineCustomScriptExtensionCmdletBase.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/VirtualMachineCustomScriptExtensionCmdletBase.cs index 19d858ccc91f..86bae5ccaec5 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/VirtualMachineCustomScriptExtensionCmdletBase.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/CustomScript/VirtualMachineCustomScriptExtensionCmdletBase.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/PublishAzureVMDscConfiguration.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/PublishAzureVMDscConfiguration.cs index 47c30acecd27..43bce73e944e 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/PublishAzureVMDscConfiguration.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/PublishAzureVMDscConfiguration.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System.Linq; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Extensions.DSC; using Microsoft.WindowsAzure.Commands.Common.Extensions.DSC.Publish; using Microsoft.WindowsAzure.Commands.Common.Storage; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/SetAzureVMDscExtension.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/SetAzureVMDscExtension.cs index 20821caae297..5328a8dfdf71 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/SetAzureVMDscExtension.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/DSC/SetAzureVMDscExtension.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Extensions.DSC; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions.DSC; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/VirtualMachineSqlServerExtensionCmdletBase.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/VirtualMachineSqlServerExtensionCmdletBase.cs index 015de4470e24..28b24efdaad3 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/VirtualMachineSqlServerExtensionCmdletBase.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/Extensions/SqlServer/VirtualMachineSqlServerExtensionCmdletBase.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Newtonsoft.Json; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureQuickVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureQuickVM.cs index b03d2c0b9d00..8236ab2e7158 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureQuickVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureQuickVM.cs @@ -15,7 +15,7 @@ using AutoMapper; using Hyak.Common; using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Common; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVM.cs index e3c6f545b823..539bc1fd17a2 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVM.cs @@ -18,7 +18,7 @@ using System.Management.Automation; using System.Net; using AutoMapper; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVMConfig.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVMConfig.cs index ded3f7ab2bcc..6930401266ad 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVMConfig.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/NewAzureVMConfig.cs @@ -16,7 +16,7 @@ using System; using System.Collections.ObjectModel; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/UpdateAzureVM.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/UpdateAzureVM.cs index f2e51509bf9f..7f171e9f984f 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/UpdateAzureVM.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/IaaS/PersistentVMs/UpdateAzureVM.cs @@ -14,7 +14,7 @@ using AutoMapper; using Hyak.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Helpers; using Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.PersistentVMs; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/Microsoft.WindowsAzure.Commands.ServiceManagement.dll-Help.xml b/src/ServiceManagement/Compute/Commands.ServiceManagement/Microsoft.WindowsAzure.Commands.ServiceManagement.dll-Help.xml index 508f5387bb85..3e7047308c4a 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/Microsoft.WindowsAzure.Commands.ServiceManagement.dll-Help.xml +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/Microsoft.WindowsAzure.Commands.ServiceManagement.dll-Help.xml @@ -35131,6 +35131,12 @@ If this parameter is not specified, the default value is Standard_GRS. Specifies the version of chef-client to be installed with the extension. + + UninstallChefClient + + Indicates that this cmdlet uninstalls the Chef Client on the vitual machine. + + OrganizationName @@ -35226,6 +35232,12 @@ If this parameter is not specified, the default value is Standard_GRS. Specifies the version of chef-client to be installed with the extension. + + UninstallChefClient + + Indicates that this cmdlet uninstalls the Chef Client on the vitual machine. + + OrganizationName @@ -35354,6 +35366,18 @@ If this parameter is not specified, the default value is Standard_GRS. none + + UninstallChefClient + + Indicates that this cmdlet uninstalls the Chef Client on the vitual machine. + + SwitchParameter + + SwitchParameter + + + none + Linux diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/StorageCredentialsFactory.cs b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/StorageCredentialsFactory.cs index bab5c364df06..5812bdbe675b 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/StorageCredentialsFactory.cs +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/StorageServices/StorageCredentialsFactory.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Properties; using Microsoft.WindowsAzure.Commands.Sync.Download; using Microsoft.WindowsAzure.Management.Storage; diff --git a/src/ServiceManagement/Compute/Commands.ServiceManagement/packages.config b/src/ServiceManagement/Compute/Commands.ServiceManagement/packages.config index 7f2978099228..d63faada0502 100644 --- a/src/ServiceManagement/Compute/Commands.ServiceManagement/packages.config +++ b/src/ServiceManagement/Compute/Commands.ServiceManagement/packages.config @@ -3,7 +3,6 @@ - @@ -15,8 +14,8 @@ - - + + diff --git a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj index efed62c183ca..8504c1d56055 100644 --- a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj +++ b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/Commands.ExpressRoute.csproj @@ -47,10 +47,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -58,6 +54,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True @@ -66,12 +63,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -185,6 +182,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs index cd505a9e7186..91a8f87592e7 100644 --- a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs +++ b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/ExpressRouteClient.cs @@ -14,7 +14,7 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Common; namespace Microsoft.WindowsAzure.Commands.ExpressRoute @@ -26,8 +26,8 @@ namespace Microsoft.WindowsAzure.Commands.ExpressRoute using System.ComponentModel; using System.Net; using Utilities.Common; - using Microsoft.Azure.Common.Authentication.Models; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; using Hyak.Common; diff --git a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config index 9bb2498f1423..bb4379d4e649 100644 --- a/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config +++ b/src/ServiceManagement/ExpressRoute/Commands.ExpressRoute/packages.config @@ -2,7 +2,6 @@ - @@ -10,8 +9,8 @@ - - + + diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj index 2563f3420a8e..5d82a362bf22 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Commands.HDInsight.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\..\..\ true - 86879738 + 440b7605 true @@ -53,10 +54,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -69,7 +66,7 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -97,12 +94,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -177,12 +174,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -277,6 +282,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test @@ -311,4 +320,4 @@ - + \ No newline at end of file diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/HDInsight/CommandTests/HDInsightGetCommandTests.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/HDInsight/CommandTests/HDInsightGetCommandTests.cs index 5c8ec60c0f4a..c71652454e79 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/HDInsight/CommandTests/HDInsightGetCommandTests.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/HDInsight/CommandTests/HDInsightGetCommandTests.cs @@ -18,7 +18,7 @@ using Microsoft.Hadoop.Client; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Test.HDInsight.CmdLetTests; using Microsoft.WindowsAzure.Commands.Test.Utilities.HDInsight.Utilities; using Microsoft.WindowsAzure.Management.HDInsight; @@ -26,8 +26,9 @@ using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.DataObjects; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.ServiceLocation; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.HDInsight.CommandTests { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/HDInsight/CommandTests/HDInsightGetJobOutputCommandTests.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/HDInsight/CommandTests/HDInsightGetJobOutputCommandTests.cs index 1cb18b765790..96fb0d3a0cde 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/HDInsight/CommandTests/HDInsightGetJobOutputCommandTests.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/HDInsight/CommandTests/HDInsightGetJobOutputCommandTests.cs @@ -104,7 +104,7 @@ public void CanGetTaskLogsForCompletedJob() getJobsCommand.EndProcessing(); AzureHDInsightJob jobWithStatusDirectory = getJobsCommand.Output.First(j => !string.IsNullOrEmpty(j.StatusDirectory)); - string logDirectoryPath = Path.Combine(System.Environment.CurrentDirectory, Guid.NewGuid().ToString()); + string logDirectoryPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Guid.NewGuid().ToString()); IGetAzureHDInsightJobOutputCommand getJobOutputCommand = ServiceLocator.Instance.Locate().CreateGetJobOutput(); getJobOutputCommand.CurrentSubscription = GetCurrentSubscription(); diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Simulators/AzureHDInsightSubscriptionResolverSimulator.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Simulators/AzureHDInsightSubscriptionResolverSimulator.cs index 79d85f7ba448..1b7036e306d0 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Simulators/AzureHDInsightSubscriptionResolverSimulator.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Simulators/AzureHDInsightSubscriptionResolverSimulator.cs @@ -17,12 +17,13 @@ using System.Linq; using System.Security.Cryptography.X509Certificates; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Test.Utilities.HDInsight.Utilities; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.HDInsight.Simulators { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Simulators/AzureHDInsightSubscriptionResolverSimulatorFactory.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Simulators/AzureHDInsightSubscriptionResolverSimulatorFactory.cs index 67360bddba58..e58f3ed5df4b 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Simulators/AzureHDInsightSubscriptionResolverSimulatorFactory.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Simulators/AzureHDInsightSubscriptionResolverSimulatorFactory.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.HDInsight.Simulators diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Utilities/IntegrationTestBase.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Utilities/IntegrationTestBase.cs index 3a895f97f561..24b1254c751d 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Utilities/IntegrationTestBase.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Models/Utilities/IntegrationTestBase.cs @@ -21,7 +21,7 @@ using System.Security.Cryptography.X509Certificates; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.HDInsight.PowerShellTestAbstraction.Concretes; using Microsoft.WindowsAzure.Commands.Test.Utilities.HDInsight.PowerShellTestAbstraction.Interfaces; @@ -36,8 +36,9 @@ using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.ServiceLocation; using Microsoft.WindowsAzure.Management.HDInsight.Framework.Core; using Microsoft.WindowsAzure.Management.HDInsight.Logging; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.HDInsight.Utilities { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Properties/AssemblyInfo.cs index a3bacfd5f78e..26583e5e55d2 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/Properties/AssemblyInfo.cs @@ -46,3 +46,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] [assembly: CLSCompliant(false)] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/packages.config b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/packages.config index dbdb938e91e8..94774a2e557a 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/packages.config +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight.Test/packages.config @@ -3,11 +3,10 @@ - - + @@ -17,8 +16,8 @@ - - + + @@ -26,7 +25,11 @@ - - - + + + + + + + diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Cmdlet/AzureHDInsightCmdlet.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Cmdlet/AzureHDInsightCmdlet.cs index 43828708c916..27ec4b5a1407 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Cmdlet/AzureHDInsightCmdlet.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Cmdlet/AzureHDInsightCmdlet.cs @@ -17,15 +17,16 @@ using System.Security.Cryptography.X509Certificates; using System.Text; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.Extensions; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.Logging; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.ServiceLocation; using Microsoft.WindowsAzure.Management.HDInsight.Logging; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/HDInsight.csproj b/src/ServiceManagement/HDInsight/Commands.HDInsight/HDInsight.csproj index 510ad56f0fda..334c313bb88c 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/HDInsight.csproj +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/HDInsight.csproj @@ -59,10 +59,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -96,12 +92,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -374,6 +370,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/Commands/CommandImplementations/AddAzureHDInsightStorageCommand.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/Commands/CommandImplementations/AddAzureHDInsightStorageCommand.cs index dee33062ee7a..dc5a3f63b508 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/Commands/CommandImplementations/AddAzureHDInsightStorageCommand.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/Commands/CommandImplementations/AddAzureHDInsightStorageCommand.cs @@ -16,7 +16,7 @@ using System.Collections.ObjectModel; using System.Threading; using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.Commands.CommandInterfaces; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.DataObjects; diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/Commands/CommandImplementations/UseAzureHDInsightClusterCommand.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/Commands/CommandImplementations/UseAzureHDInsightClusterCommand.cs index fadd9e0c1190..751b2f2a7b63 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/Commands/CommandImplementations/UseAzureHDInsightClusterCommand.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/Commands/CommandImplementations/UseAzureHDInsightClusterCommand.cs @@ -20,9 +20,10 @@ using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.DataObjects; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.Extensions; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.Commands.CommandImplementations { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightClusterCommandBase.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightClusterCommandBase.cs index b0dd4dd26e30..0cda6aaeeee6 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightClusterCommandBase.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightClusterCommandBase.cs @@ -17,9 +17,10 @@ using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.Extensions; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.ServiceLocation; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightCommandBase.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightCommandBase.cs index 9726e37ebe4c..619bf104e239 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightCommandBase.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightCommandBase.cs @@ -16,7 +16,7 @@ using System.Security.Cryptography.X509Certificates; using System.Threading; using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.HDInsight.Framework.Core; using Microsoft.WindowsAzure.Management.HDInsight.Logging; diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightCommandExtensions.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightCommandExtensions.cs index 57a5aa69f6c6..a82360bed779 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightCommandExtensions.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightCommandExtensions.cs @@ -12,8 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Hadoop.Client; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.Commands.CommandImplementations; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces; @@ -22,6 +22,7 @@ using System.Diagnostics; using System.IO; using System.Reflection; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightJobCommandExecutorBase.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightJobCommandExecutorBase.cs index d320eea45129..383a5bf46d10 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightJobCommandExecutorBase.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightJobCommandExecutorBase.cs @@ -18,12 +18,13 @@ using System.Threading; using Microsoft.Hadoop.Client; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.Extensions; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.ServiceLocation; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightSubscriptionResolver.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightSubscriptionResolver.cs index 2901c5d98d7b..644fe7d5e73e 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightSubscriptionResolver.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightSubscriptionResolver.cs @@ -14,7 +14,7 @@ using System; using System.Linq; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.Extensions; diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightSubscriptionResolverFactory.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightSubscriptionResolverFactory.cs index 6031d9168a1f..5fe602fa8f7d 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightSubscriptionResolverFactory.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/AzureHDInsightSubscriptionResolverFactory.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightCommandBase.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightCommandBase.cs index 7b12055982fe..9ee13ba97f94 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightCommandBase.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightCommandBase.cs @@ -14,7 +14,7 @@ using System.Threading; using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightSubscriptionResolver.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightSubscriptionResolver.cs index 661b4edd8940..06ba6c176d0e 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightSubscriptionResolver.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightSubscriptionResolver.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightSubscriptionResolverFactory.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightSubscriptionResolverFactory.cs index ebdcb5df9829..6dc2f1aea8b4 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightSubscriptionResolverFactory.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/BaseInterfaces/IAzureHDInsightSubscriptionResolverFactory.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.BaseInterfaces { diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/IInvokeAzureHDInsightJobCommand.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/IInvokeAzureHDInsightJobCommand.cs index 0060f31435cc..fd38d798914f 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/IInvokeAzureHDInsightJobCommand.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/IInvokeAzureHDInsightJobCommand.cs @@ -15,7 +15,7 @@ using System.Collections.ObjectModel; using System.Threading; using System.Threading.Tasks; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.DataObjects; using Microsoft.WindowsAzure.Management.HDInsight.Logging; diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/InvokeAzureHDInsightJobCommandBase.cs b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/InvokeAzureHDInsightJobCommandBase.cs index 2edb165cc22c..6b7f4d539a30 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/InvokeAzureHDInsightJobCommandBase.cs +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/Model/GetAzureHDInsightClusters/InvokeAzureHDInsightJobCommandBase.cs @@ -21,7 +21,7 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Hadoop.Client; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.Commands.BaseCommandInterfaces; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.DataObjects; using Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.GetAzureHDInsightClusters.Extensions; diff --git a/src/ServiceManagement/HDInsight/Commands.HDInsight/packages.config b/src/ServiceManagement/HDInsight/Commands.HDInsight/packages.config index 02bbcf5f3c5c..b577b8ff3daf 100644 --- a/src/ServiceManagement/HDInsight/Commands.HDInsight/packages.config +++ b/src/ServiceManagement/HDInsight/Commands.HDInsight/packages.config @@ -3,8 +3,8 @@ - + @@ -15,13 +15,12 @@ - - + + - diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Commands.ManagedCache.Test.csproj b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Commands.ManagedCache.Test.csproj index a746214d7f34..396980ac0ea0 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Commands.ManagedCache.Test.csproj +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Commands.ManagedCache.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\..\..\ true - ea4efacb + b1046e6d bin\Release\ @@ -46,10 +47,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -58,10 +55,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -80,12 +77,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -139,12 +136,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -184,6 +189,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Properties/AssemblyInfo.cs index fd3d55c354ba..70a8924a95b9 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/Properties/AssemblyInfo.cs @@ -27,3 +27,4 @@ [assembly: Guid("3E5D3114-DEBB-4DC2-BB9D-CF2A2707F74D")] [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTestsBase.cs b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTestsBase.cs index 0e6f3d151d71..235d3935895b 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTestsBase.cs +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/ScenarioTests/ManagedCacheTestsBase.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Management.ManagedCache; using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.ScenarioTest; diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/packages.config b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/packages.config index 4be7cc327051..5cea8b9a4219 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/packages.config +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache.Test/packages.config @@ -2,11 +2,10 @@ - - - + + @@ -15,13 +14,17 @@ - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/Commands.ManagedCache.csproj b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/Commands.ManagedCache.csproj index 008c06034333..91f30b150ff5 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/Commands.ManagedCache.csproj +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/Commands.ManagedCache.csproj @@ -47,10 +47,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -58,6 +54,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -75,12 +72,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -162,6 +159,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {cff09e81-1e31-444e-b4d4-a21e946c29e2} Commands.ServiceManagement.Common diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/PSCacheClient.cs b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/PSCacheClient.cs index 40631eb70709..51b390b88881 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/PSCacheClient.cs +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/PSCacheClient.cs @@ -24,9 +24,9 @@ using Microsoft.Azure.Management.ManagedCache.Models; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Hyak.Common; namespace Microsoft.Azure.Commands.ManagedCache diff --git a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/packages.config b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/packages.config index 2cd3c72b84c0..7cb1d4035e23 100644 --- a/src/ServiceManagement/ManagedCache/Commands.ManagedCache/packages.config +++ b/src/ServiceManagement/ManagedCache/Commands.ManagedCache/packages.config @@ -2,7 +2,6 @@ - @@ -13,8 +12,8 @@ - - + + diff --git a/src/ServiceManagement/Network/Commands.Network.Test/Commands.ServiceManagement.Network.Test.csproj b/src/ServiceManagement/Network/Commands.Network.Test/Commands.ServiceManagement.Network.Test.csproj index 4f1f11b0c6ff..7e6777f5cb62 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/Commands.ServiceManagement.Network.Test.csproj +++ b/src/ServiceManagement/Network/Commands.Network.Test/Commands.ServiceManagement.Network.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\..\..\ true - 395702f1 + b990439b bin\Release\ @@ -46,10 +47,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -58,10 +55,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -80,12 +77,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -109,7 +106,7 @@ ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.12.5.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.7.0.4\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.7.0.4\lib\net40\Microsoft.WindowsAzure.Management.Network.dll False @@ -150,12 +147,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -185,7 +190,7 @@ - + @@ -208,6 +213,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/Network/Commands.Network.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/Network/Commands.Network.Test/Properties/AssemblyInfo.cs index 8625a1cfe827..c9d2d6e67213 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/Network/Commands.Network.Test/Properties/AssemblyInfo.cs @@ -27,3 +27,4 @@ [assembly: Guid("3E5D3114-DEBB-4DC2-BB9D-CF2A2707F74D")] [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/IPForwarding/IPForwardingScenarioTests.cs b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/IPForwarding/IPForwardingScenarioTests.cs index 75ce849363c3..f65fd46c8f84 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/IPForwarding/IPForwardingScenarioTests.cs +++ b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/IPForwarding/IPForwardingScenarioTests.cs @@ -14,7 +14,7 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Test.ScenarioTests { - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Management; diff --git a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/MultiVip/MultiVip.cs b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/MultiVip/MultiVip.cs index d62de0f1ba0b..44970d77cfb3 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/MultiVip/MultiVip.cs +++ b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/MultiVip/MultiVip.cs @@ -15,13 +15,14 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Test.ScenarioTests { - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Management; using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Network; using Microsoft.WindowsAzure.Management.Storage; + using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -80,8 +81,8 @@ protected void RunPowerShellTest(params string[] scripts) { context.Start(TestUtilities.GetCallingClass(2), TestUtilities.GetCurrentMethodName(2)); - List modules = Directory.GetFiles("ScenarioTests\\MultiVip", "*.ps1").ToList(); - modules.AddRange(Directory.GetFiles("ScenarioTests", "*.ps1")); + List modules = Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScenarioTests\\MultiVip"), "*.ps1").ToList(); + modules.AddRange(Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScenarioTests"), "*.ps1")); modules.Add("Common.ps1"); SetupManagementClients(); diff --git a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkSecurityGroup/NSGScenarioTests.cs b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkSecurityGroup/NSGScenarioTests.cs index 5b0dbbfae2a9..0ab3a1539b29 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkSecurityGroup/NSGScenarioTests.cs +++ b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkSecurityGroup/NSGScenarioTests.cs @@ -23,8 +23,9 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Test.Scenari using Microsoft.WindowsAzure.Commands.Utilities.Common; using Xunit; using Microsoft.WindowsAzure.Management; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test; + using System; public class NSGScenarioTests { @@ -132,8 +133,8 @@ protected void RunPowerShellTest(params string[] scripts) { context.Start(TestUtilities.GetCallingClass(2), TestUtilities.GetCurrentMethodName(2)); - List modules = Directory.GetFiles("ScenarioTests\\NetworkSecurityGroup", "*.ps1").ToList(); - modules.AddRange(Directory.GetFiles("ScenarioTests", "*.ps1")); + List modules = Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScenarioTests\\NetworkSecurityGroup"), "*.ps1").ToList(); + modules.AddRange(Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScenarioTests"), "*.ps1")); modules.Add("Common.ps1"); SetupManagementClients(); diff --git a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkTestsBase.cs b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkTestsBase.cs index 63232ed03158..d06d73aa982b 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkTestsBase.cs +++ b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/NetworkTestsBase.cs @@ -18,7 +18,7 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Test.ScenarioTests { - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using WindowsAzure.Management.Network; public abstract class NetworkTestsBase diff --git a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/ReservedIPs/ReservedIP.cs b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/ReservedIPs/ReservedIP.cs index a22c9c3cd10c..1b7aa65a4947 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/ReservedIPs/ReservedIP.cs +++ b/src/ServiceManagement/Network/Commands.Network.Test/ScenarioTests/ReservedIPs/ReservedIP.cs @@ -17,11 +17,13 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Test.ScenarioTests { - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test; + using Microsoft.Azure.Test.HttpRecorder; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Microsoft.WindowsAzure.Management; using Microsoft.WindowsAzure.Management.Network; + using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -83,12 +85,13 @@ protected void SetupManagementClients() protected void RunPowerShellTest(params string[] scripts) { + HttpMockServer.RecordsDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SessionRecords"); using (UndoContext context = UndoContext.Current) { context.Start(TestUtilities.GetCallingClass(2), TestUtilities.GetCurrentMethodName(2)); - List modules = Directory.GetFiles("ScenarioTests\\ReservedIPs", "*.ps1").ToList(); - modules.AddRange(Directory.GetFiles("ScenarioTests", "*.ps1")); + List modules = Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScenarioTests\\ReservedIPs"), "*.ps1").ToList(); + modules.AddRange(Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"ScenarioTests"), "*.ps1")); modules.Add("Common.ps1"); SetupManagementClients(); diff --git a/src/ServiceManagement/Network/Commands.Network.Test/packages.config b/src/ServiceManagement/Network/Commands.Network.Test/packages.config index c9e27783befb..a273365da0e4 100644 --- a/src/ServiceManagement/Network/Commands.Network.Test/packages.config +++ b/src/ServiceManagement/Network/Commands.Network.Test/packages.config @@ -2,11 +2,10 @@ - - - + + @@ -15,8 +14,8 @@ - - + + @@ -24,7 +23,11 @@ - - - + + + + + + + diff --git a/src/ServiceManagement/Network/Commands.Network/Commands.ServiceManagement.Network.csproj b/src/ServiceManagement/Network/Commands.Network/Commands.ServiceManagement.Network.csproj index d1b2404a9038..637109986038 100644 --- a/src/ServiceManagement/Network/Commands.Network/Commands.ServiceManagement.Network.csproj +++ b/src/ServiceManagement/Network/Commands.Network/Commands.ServiceManagement.Network.csproj @@ -55,10 +55,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -70,6 +66,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -90,12 +87,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -106,8 +103,8 @@ ..\..\..\packages\Microsoft.WindowsAzure.Management.Compute.12.5.0\lib\net40\Microsoft.WindowsAzure.Management.Compute.dll - False - ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.7.0.4\lib\net40\Microsoft.WindowsAzure.Management.Network.dll + False + ..\..\..\packages\Microsoft.WindowsAzure.Management.Network.7.0.4\lib\net40\Microsoft.WindowsAzure.Management.Network.dll False @@ -271,6 +268,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {cff09e81-1e31-444e-b4d4-a21e946c29e2} Commands.ServiceManagement.Common diff --git a/src/ServiceManagement/Network/Commands.Network/NetworkClient.cs b/src/ServiceManagement/Network/Commands.Network/NetworkClient.cs index c16a19dc94fd..aa59e8b29dba 100644 --- a/src/ServiceManagement/Network/Commands.Network/NetworkClient.cs +++ b/src/ServiceManagement/Network/Commands.Network/NetworkClient.cs @@ -18,8 +18,8 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Network { using Gateway.Model; using Hyak.Common; - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Management.Compute; using NetworkSecurityGroup.Model; diff --git a/src/ServiceManagement/Network/Commands.Network/NetworkCmdletBase.cs b/src/ServiceManagement/Network/Commands.Network/NetworkCmdletBase.cs index c4329cb893a2..b0dee05727fb 100644 --- a/src/ServiceManagement/Network/Commands.Network/NetworkCmdletBase.cs +++ b/src/ServiceManagement/Network/Commands.Network/NetworkCmdletBase.cs @@ -14,8 +14,8 @@ namespace Microsoft.WindowsAzure.Commands.ServiceManagement.Network { - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; using WindowsAzure.Commands.Common; using WindowsAzure.Commands.Utilities.Common; using WindowsAzure.Commands.Utilities.Profile; diff --git a/src/ServiceManagement/Network/Commands.Network/packages.config b/src/ServiceManagement/Network/Commands.Network/packages.config index df4fa5de8bd8..e0a184aeec41 100644 --- a/src/ServiceManagement/Network/Commands.Network/packages.config +++ b/src/ServiceManagement/Network/Commands.Network/packages.config @@ -3,7 +3,6 @@ - @@ -15,8 +14,8 @@ - - + + diff --git a/src/ServiceManagement/Profile/Commands.Profile/Account/AddAzureAccount.cs b/src/ServiceManagement/Profile/Commands.Profile/Account/AddAzureAccount.cs index ca8d08d1e60e..af42a390e83f 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Account/AddAzureAccount.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Account/AddAzureAccount.cs @@ -15,7 +15,7 @@ using System.Management.Automation; using System.Security; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Profile; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Account/GetAzureAccount.cs b/src/ServiceManagement/Profile/Commands.Profile/Account/GetAzureAccount.cs index d088ebddc317..632fe666638d 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Account/GetAzureAccount.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Account/GetAzureAccount.cs @@ -15,9 +15,10 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Profile; using System.Collections.Generic; +using Microsoft.Azure.ServiceManagemenet.Common.Models; namespace Microsoft.WindowsAzure.Commands.Profile { diff --git a/src/ServiceManagement/Profile/Commands.Profile/Account/RemoveAzureAccount.cs b/src/ServiceManagement/Profile/Commands.Profile/Account/RemoveAzureAccount.cs index 7cf8484c336e..ce0436a09986 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Account/RemoveAzureAccount.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Account/RemoveAzureAccount.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Profile; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Commands.Profile.csproj b/src/ServiceManagement/Profile/Commands.Profile/Commands.Profile.csproj index 04f5979568a7..a2b4573d1c4b 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Commands.Profile.csproj +++ b/src/ServiceManagement/Profile/Commands.Profile/Commands.Profile.csproj @@ -53,10 +53,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -66,6 +62,7 @@ + ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll True @@ -86,12 +83,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -197,6 +194,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Profile/Commands.Profile/Environment/AddAzureEnvironment.cs b/src/ServiceManagement/Profile/Commands.Profile/Environment/AddAzureEnvironment.cs index 670cc6769963..9c1f0e805cc4 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Environment/AddAzureEnvironment.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Environment/AddAzureEnvironment.cs @@ -14,7 +14,7 @@ using System.Management.Automation; using System.Security.Permissions; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Utilities.Profile; using System.Collections.Generic; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Environment/GetAzureEnvironment.cs b/src/ServiceManagement/Profile/Commands.Profile/Environment/GetAzureEnvironment.cs index 9b1319fd6122..7607c7219e15 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Environment/GetAzureEnvironment.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Environment/GetAzureEnvironment.cs @@ -16,7 +16,7 @@ using System.Linq; using System.Management.Automation; using System.Security.Permissions; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Utilities.Profile; using System; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Environment/RemoveAzureEnvironment.cs b/src/ServiceManagement/Profile/Commands.Profile/Environment/RemoveAzureEnvironment.cs index cb373c1b9053..00255417cc41 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Environment/RemoveAzureEnvironment.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Environment/RemoveAzureEnvironment.cs @@ -14,7 +14,7 @@ using System.Management.Automation; using System.Security.Permissions; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Utilities.Profile; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Environment/SetAzureEnvironment.cs b/src/ServiceManagement/Profile/Commands.Profile/Environment/SetAzureEnvironment.cs index f62934e23d0a..5ff4222d3e72 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Environment/SetAzureEnvironment.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Environment/SetAzureEnvironment.cs @@ -16,7 +16,7 @@ using System.Globalization; using System.Management.Automation; using System.Security.Permissions; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Utilities.Profile; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Models/AzureProfileSettings.cs b/src/ServiceManagement/Profile/Commands.Profile/Models/AzureProfileSettings.cs index b68ad11e27a2..4c4077ec46f8 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Models/AzureProfileSettings.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Models/AzureProfileSettings.cs @@ -14,7 +14,7 @@ using System.Management.Automation; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Profile.Models { diff --git a/src/ServiceManagement/Profile/Commands.Profile/Models/PSAzureEnvironment.cs b/src/ServiceManagement/Profile/Commands.Profile/Models/PSAzureEnvironment.cs index c885cced63d5..820b68da1460 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Models/PSAzureEnvironment.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Models/PSAzureEnvironment.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Profile.Models { diff --git a/src/ServiceManagement/Profile/Commands.Profile/Models/PsAzureSubscription.cs b/src/ServiceManagement/Profile/Commands.Profile/Models/PsAzureSubscription.cs index e0db30a7512a..611bc6108178 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Models/PsAzureSubscription.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Models/PsAzureSubscription.cs @@ -16,8 +16,8 @@ using System.Collections.Generic; using System.Linq; using System.ServiceModel.Description; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Profile.Models { diff --git a/src/ServiceManagement/Profile/Commands.Profile/Models/PsAzureSubscriptionExtended.cs b/src/ServiceManagement/Profile/Commands.Profile/Models/PsAzureSubscriptionExtended.cs index 3352e274c7b9..46abfa944368 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Models/PsAzureSubscriptionExtended.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Models/PsAzureSubscriptionExtended.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Profile.Models { diff --git a/src/ServiceManagement/Profile/Commands.Profile/Profile/ClearAzureProfile.cs b/src/ServiceManagement/Profile/Commands.Profile/Profile/ClearAzureProfile.cs index b18f14738768..7c7bf0fcdbc9 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Profile/ClearAzureProfile.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Profile/ClearAzureProfile.cs @@ -14,7 +14,7 @@ using System.Management.Automation; using System.Security.Permissions; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Profile; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Profile/NewAzureProfile.cs b/src/ServiceManagement/Profile/Commands.Profile/Profile/NewAzureProfile.cs index de1dbb193d82..51559228d245 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Profile/NewAzureProfile.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Profile/NewAzureProfile.cs @@ -18,14 +18,15 @@ using System.Linq; using System.Security; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.IdentityModel.Clients.ActiveDirectory; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using System.Management.Automation; using System.Security.Permissions; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Profile { diff --git a/src/ServiceManagement/Profile/Commands.Profile/Profile/SelectAzureProfile.cs b/src/ServiceManagement/Profile/Commands.Profile/Profile/SelectAzureProfile.cs index 5a552a3e8777..b67a6af6b994 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Profile/SelectAzureProfile.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Profile/SelectAzureProfile.cs @@ -18,8 +18,8 @@ using System.Linq; using System.Security; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Subscription/GetAzurePublishSettingsFile.cs b/src/ServiceManagement/Profile/Commands.Profile/Subscription/GetAzurePublishSettingsFile.cs index 92540f3a0340..41d5a7dbc248 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Subscription/GetAzurePublishSettingsFile.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Subscription/GetAzurePublishSettingsFile.cs @@ -14,7 +14,7 @@ using System.Management.Automation; using System.Security.Permissions; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Profile; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Subscription/GetAzureSubscription.cs b/src/ServiceManagement/Profile/Commands.Profile/Subscription/GetAzureSubscription.cs index ecb2f8b6fc5c..bec7662cc883 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Subscription/GetAzureSubscription.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Subscription/GetAzureSubscription.cs @@ -17,13 +17,13 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Profile; using Microsoft.WindowsAzure.Management; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Profile { diff --git a/src/ServiceManagement/Profile/Commands.Profile/Subscription/ImportAzurePublishSettings.cs b/src/ServiceManagement/Profile/Commands.Profile/Subscription/ImportAzurePublishSettings.cs index 8b47e0c1832b..46c6cd7c8d07 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Subscription/ImportAzurePublishSettings.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Subscription/ImportAzurePublishSettings.cs @@ -17,13 +17,13 @@ using System.Linq; using System.Management.Automation; using System.Security.Permissions; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Profile; using Microsoft.WindowsAzure.Commands.Common; using System.Diagnostics; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Profile { diff --git a/src/ServiceManagement/Profile/Commands.Profile/Subscription/RemoveAzureSubscription.cs b/src/ServiceManagement/Profile/Commands.Profile/Subscription/RemoveAzureSubscription.cs index fb4b83cd8729..33efa96125c6 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Subscription/RemoveAzureSubscription.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Subscription/RemoveAzureSubscription.cs @@ -14,7 +14,7 @@ using System; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Profile; diff --git a/src/ServiceManagement/Profile/Commands.Profile/Subscription/SelectAzureSubscription.cs b/src/ServiceManagement/Profile/Commands.Profile/Subscription/SelectAzureSubscription.cs index 8e0d3ed0136a..e9ea418afe3a 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Subscription/SelectAzureSubscription.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Subscription/SelectAzureSubscription.cs @@ -16,10 +16,10 @@ using System.Linq; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Profile; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Profile.Models; namespace Microsoft.WindowsAzure.Commands.Profile diff --git a/src/ServiceManagement/Profile/Commands.Profile/Subscription/SetAzureSubscription.cs b/src/ServiceManagement/Profile/Commands.Profile/Subscription/SetAzureSubscription.cs index dfb47f472d71..9c8ba0551dcb 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/Subscription/SetAzureSubscription.cs +++ b/src/ServiceManagement/Profile/Commands.Profile/Subscription/SetAzureSubscription.cs @@ -16,8 +16,9 @@ using System.Linq; using System.Management.Automation; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.Utilities.Common; @@ -163,7 +164,7 @@ public override void ExecuteCmdlet() if (Profile.Context != null && Profile.Context.Subscription != null && Profile.Context.Subscription.Id == subscription.Id) { - GeneralUtilities.ClearCurrentStorageAccount(); + ServiceManagementUtilities.ClearCurrentStorageAccount(); } var context = new AzureContext(subscription, ProfileClient.GetAccount(subscription.Account), ProfileClient.GetEnvironmentOrDefault(subscription.Environment)); if (Context != null) diff --git a/src/ServiceManagement/Profile/Commands.Profile/packages.config b/src/ServiceManagement/Profile/Commands.Profile/packages.config index 3da3900e31e7..2c602f38b9d4 100644 --- a/src/ServiceManagement/Profile/Commands.Profile/packages.config +++ b/src/ServiceManagement/Profile/Commands.Profile/packages.config @@ -2,7 +2,6 @@ - @@ -14,8 +13,8 @@ - - + + diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj index ce15284e9568..a6afc45f1896 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Commands.RecoveryServices.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,7 +16,7 @@ ..\..\..\ true - f6a1458e + 9a889278 true @@ -37,10 +38,6 @@ false - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll @@ -55,10 +52,10 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll False @@ -68,12 +65,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -119,12 +116,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -191,6 +196,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Properties/AssemblyInfo.cs index 0ec4432b6051..5ce07850c86b 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/Properties/AssemblyInfo.cs @@ -49,3 +49,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTests.ps1 b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTests.ps1 index 7dcb3c0c6f52..8693577d3886 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTests.ps1 +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTests.ps1 @@ -1216,7 +1216,7 @@ function WaitForCanFailover $count = 20 do { - Start-Sleep 5 + Wait-Seconds 5 $pes = Get-AzureSiteRecoveryProtectionEntity -ProtectionContainerId $pcId; $count = $count -1; @@ -1242,7 +1242,7 @@ function WaitForJobCompletion $interval = 5; do { - Start-Sleep $interval + Wait-Seconds $interval $timeElapse = $timeElapse + $interval $job = Get-AzureSiteRecoveryJob -Id $JobId; } while((-not ($endStateDescription -ccontains $job.State)) -and ($timeElapse -lt $NumOfSecondsToWait)) diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs index d4efb21383fa..78c7d7aa26f7 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/ScenarioTests/RecoveryServicesTestsBase.cs @@ -27,8 +27,8 @@ using Microsoft.WindowsAzure.Management.SiteRecovery; using Microsoft.Azure.Test; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.Azure.Commands.RecoveryServices.Test.ScenarioTests { @@ -46,7 +46,9 @@ protected RecoveryServicesTestsBase() { if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("VAULT_SETTINGS_FILE_PATH"))) { - Environment.SetEnvironmentVariable("VAULT_SETTINGS_FILE_PATH", "ScenarioTests\\vaultSettings.vaultcredentials"); + Environment.SetEnvironmentVariable( + "VAULT_SETTINGS_FILE_PATH", + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ScenarioTests\\vaultSettings.vaultcredentials")); } this.vaultSettingsFilePath = Environment.GetEnvironmentVariable("VAULT_SETTINGS_FILE_PATH"); diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/packages.config b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/packages.config index 4aab3c6aac4e..580714a7e956 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/packages.config +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices.Test/packages.config @@ -2,22 +2,25 @@ - - - + + - - + + - - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServicesRdfe.csproj b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServicesRdfe.csproj index 0c369bc536a5..3484717996b9 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServicesRdfe.csproj +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Commands.RecoveryServicesRdfe.csproj @@ -53,10 +53,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -72,12 +68,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -212,6 +208,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common @@ -246,4 +246,4 @@ - + \ No newline at end of file diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesClient.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesClient.cs index e7eaa3a1a84f..4fde69310b0a 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesClient.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesClient.cs @@ -25,8 +25,8 @@ using System.Xml; using Microsoft.Azure.Portal.RecoveryServices.Models.Common; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.RecoveryServices; using Microsoft.WindowsAzure.Management.RecoveryServices.Models; diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesClientHelper.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesClientHelper.cs index 90ff63493832..d3e05a79f273 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesClientHelper.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/PSRecoveryServicesClient/PSRecoveryServicesClientHelper.cs @@ -14,8 +14,8 @@ using System; using System.Collections.Generic; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Management.SiteRecovery; using Microsoft.WindowsAzure.Management.SiteRecovery.Models; diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Service/CreateAzureSiteRecoveryRecoveryPlan.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Service/CreateAzureSiteRecoveryRecoveryPlan.cs index 5f57b571ee33..707694d806bd 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Service/CreateAzureSiteRecoveryRecoveryPlan.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Service/CreateAzureSiteRecoveryRecoveryPlan.cs @@ -13,12 +13,9 @@ // ---------------------------------------------------------------------------------- using System; -using System.Diagnostics; using System.Management.Automation; -using System.Threading; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Commands.RecoveryServices.SiteRecovery; -using Microsoft.Azure.Common.Authentication; -using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.SiteRecovery.Models; namespace Microsoft.Azure.Commands.RecoveryServices diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Service/GetAzureSiteRecoveryVaultSettingsFile.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Service/GetAzureSiteRecoveryVaultSettingsFile.cs index 8a7b53e2fcfc..c903553d4393 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Service/GetAzureSiteRecoveryVaultSettingsFile.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/Service/GetAzureSiteRecoveryVaultSettingsFile.cs @@ -16,9 +16,8 @@ using System.Linq; using System.Management.Automation; using System.Security.Cryptography.X509Certificates; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Commands.RecoveryServices.SiteRecovery; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; using Microsoft.Azure.Portal.RecoveryServices.Models.Common; using Microsoft.WindowsAzure.Management.RecoveryServices.Models; using Microsoft.WindowsAzure.Management.SiteRecovery.Models; diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/lib/PSObjects.cs b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/lib/PSObjects.cs index 989e7863aa3e..e60bed7710dc 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/lib/PSObjects.cs +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/lib/PSObjects.cs @@ -16,7 +16,7 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Runtime.Serialization; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Portal.RecoveryServices.Models.Common; using Microsoft.WindowsAzure.Management.RecoveryServices.Models; using Microsoft.WindowsAzure.Management.SiteRecovery.Models; diff --git a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/packages.config b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/packages.config index 82d832420fda..1ef51d82a8b5 100644 --- a/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/packages.config +++ b/src/ServiceManagement/RecoveryServices/Commands.RecoveryServices/packages.config @@ -3,7 +3,6 @@ - @@ -12,8 +11,8 @@ - - + + diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/Commands.RemoteAppScenarioTest.csproj b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/Commands.RemoteAppScenarioTest.csproj index de36e914661e..3f4cc09d502a 100644 --- a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/Commands.RemoteAppScenarioTest.csproj +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/Commands.RemoteAppScenarioTest.csproj @@ -40,72 +40,98 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - - + False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5571.32271-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + + + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + True - False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + True - + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll + True ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + True ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + True False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll - + + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll - + + False ..\..\..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll - + + ..\..\..\packages\Microsoft.WindowsAzure.Management.4.1.1\lib\net40\Microsoft.WindowsAzure.Management.dll + + + ..\..\..\packages\Microsoft.WindowsAzure.Management.RemoteApp.2.0.4\lib\net40\Microsoft.WindowsAzure.Management.RemoteApp.dll + + + ..\..\..\packages\Moq.4.2.1402.2112\lib\net40\Moq.dll False + + ..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll - - - False - ..\..\..\..\..\..\..\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0__31bf3856ad364e35\System.Management.Automation.dll - + + + - - ..\..\..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Extensions.dll + + False + ..\..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Extensions.dll - - ..\..\..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Primitives.dll + + False + ..\..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll - - - - - - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {c1bda476-a5cc-4394-914d-48b0ec31a710} Commands.ScenarioTests.Common @@ -115,6 +141,7 @@ + PreserveNewest diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/CreateCloudCollection.cs b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/CreateCloudCollection.cs index 2a5116eb3cb1..af69e670b300 100644 --- a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/CreateCloudCollection.cs +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/CreateCloudCollection.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test; using System.Collections.Generic; using System.Collections.ObjectModel; diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/Scripts/RemoteAppCI_Test.ps1 b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/Scripts/RemoteAppCI_Test.ps1 index f3da3f38ce72..13f3693fb8ec 100644 --- a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/Scripts/RemoteAppCI_Test.ps1 +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/Scripts/RemoteAppCI_Test.ps1 @@ -70,8 +70,9 @@ function CreateCloudCollection([string] $Collection) do { Write-Verbose "Waiting current time: $(Get-Date)" - sleep -Seconds (PollingInterval) - + if ($env:AZURE_TEST_MODE -eq "Record"){ + sleep -Seconds (PollingInterval) + } $collectionState = Get-AzureRemoteAppOperationResult -TrackingId $trackIdCollection.TrackingId -ErrorAction SilentlyContinue -ErrorVariable er if ($? -eq $false) { @@ -204,7 +205,9 @@ function UnpublishRemoteApplications([string] $Collection, [string[]] $applicati } } - Sleep 60 # seconds + if ($env:AZURE_TEST_MODE -eq "Record"){ + Sleep 60 # seconds + } $remainingApps = Get-AzureRemoteAppProgram $Collection | % Alias $failedToUnpublish = $remainingApps | ? {$applications -contains $_} @@ -223,8 +226,9 @@ function DeleteRemoteAppCollection([string] $Collection) do { Write-Verbose "Waiting current time: $(Get-Date)" - sleep -Seconds (PollingInterval) - + if ($env:AZURE_TEST_MODE -eq "Record"){ + sleep -Seconds (PollingInterval) + } $collectionState = Get-AzureRemoteAppOperationResult -TrackingId $trackIdCollection.TrackingId -ErrorAction SilentlyContinue -ErrorVariable er if ($? -eq $false) { diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/packages.config b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/packages.config new file mode 100644 index 000000000000..b2f9859a5063 --- /dev/null +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.ScenarioTest/packages.config @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.Test/Commands.RemoteApp.Test.csproj b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.Test/Commands.RemoteApp.Test.csproj index cf2491c8bf04..51e7d4eacc78 100644 --- a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.Test/Commands.RemoteApp.Test.csproj +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.Test/Commands.RemoteApp.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -14,7 +15,7 @@ 512 ..\..\..\ true - 44c0d39d + 34871fc7 AnyCPU @@ -60,6 +61,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test @@ -101,18 +106,15 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True + ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll True @@ -121,12 +123,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -169,12 +171,19 @@ ..\..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.Test/packages.config b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.Test/packages.config index 44ee0184cc62..29f478b8ac67 100644 --- a/src/ServiceManagement/RemoteApp/Commands.RemoteApp.Test/packages.config +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp.Test/packages.config @@ -2,21 +2,24 @@ - - + - - + + - - - + + + + + + + diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp/Commands.RemoteApp.csproj b/src/ServiceManagement/RemoteApp/Commands.RemoteApp/Commands.RemoteApp.csproj index 19f47e0794fc..5bc5dda1d1ab 100644 --- a/src/ServiceManagement/RemoteApp/Commands.RemoteApp/Commands.RemoteApp.csproj +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp/Commands.RemoteApp.csproj @@ -61,10 +61,6 @@ False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - False ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -89,12 +85,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -163,6 +159,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp/Common/RdsCmdlet.cs b/src/ServiceManagement/RemoteApp/Commands.RemoteApp/Common/RdsCmdlet.cs index 7228087b73b1..4b86c0d629c0 100644 --- a/src/ServiceManagement/RemoteApp/Commands.RemoteApp/Common/RdsCmdlet.cs +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp/Common/RdsCmdlet.cs @@ -14,8 +14,8 @@ using Hyak.Common; using Microsoft.WindowsAzure.Commands.RemoteApp; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.RemoteApp; using Microsoft.WindowsAzure.Management.RemoteApp.Models; diff --git a/src/ServiceManagement/RemoteApp/Commands.RemoteApp/packages.config b/src/ServiceManagement/RemoteApp/Commands.RemoteApp/packages.config index 09e21c0de9c9..05258c2cd16a 100644 --- a/src/ServiceManagement/RemoteApp/Commands.RemoteApp/packages.config +++ b/src/ServiceManagement/RemoteApp/Commands.RemoteApp/packages.config @@ -2,7 +2,6 @@ - @@ -13,8 +12,8 @@ - - + + diff --git a/src/ServiceManagement/ServiceManagement.sln b/src/ServiceManagement/ServiceManagement.sln index fcaa8036798f..d5b991f3cb76 100644 --- a/src/ServiceManagement/ServiceManagement.sln +++ b/src/ServiceManagement/ServiceManagement.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8531411A-0137-4E27-9C5E-49E07C245048}" ProjectSection(SolutionItems) = preProject @@ -88,7 +88,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ServiceManagement. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ServiceManagement.Network.Test", "Network\Commands.Network.Test\Commands.ServiceManagement.Network.Test.csproj", "{FDB897BD-FCB4-44A1-8D66-AC99F22EC737}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.RecoveryServices", "RecoveryServices\Commands.RecoveryServices\Commands.RecoveryServicesRdfe.csproj", "{98B10548-DF97-4FB1-8D82-2A12945D4F21}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.RecoveryServicesRdfe", "RecoveryServices\Commands.RecoveryServices\Commands.RecoveryServicesRdfe.csproj", "{98B10548-DF97-4FB1-8D82-2A12945D4F21}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.RecoveryServices.Test", "RecoveryServices\Commands.RecoveryServices.Test\Commands.RecoveryServices.Test.csproj", "{A415F75B-EB6A-49A6-934E-5BA71B83D6EB}" EndProject @@ -106,10 +106,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.StorSimple.Test", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.ServiceManagement.Common", "Common\Commands.ServiceManagement.Common\Commands.ServiceManagement.Common.csproj", "{CFF09E81-1E31-444E-B4D4-A21E946C29E2}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{1059B990-B1E2-4846-B1B2-8663F11CBDE3}" - ProjectSection(SolutionItems) = preProject - .nuget\packages.config = .nuget\packages.config - EndProjectSection +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.RemoteAppScenarioTest", "RemoteApp\Commands.RemoteApp.ScenarioTest\Commands.RemoteAppScenarioTest.csproj", "{C2FA83A2-8668-49DD-A1A0-0359653571CA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Commands.Common.Authentication", "..\Common\Commands.Common.Authentication\Commands.Common.Authentication.csproj", "{D3804B64-C0D3-48F8-82EC-1F632F833C9E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -285,6 +284,14 @@ Global {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Debug|Any CPU.Build.0 = Debug|Any CPU {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Release|Any CPU.ActiveCfg = Release|Any CPU {CFF09E81-1E31-444E-B4D4-A21E946C29E2}.Release|Any CPU.Build.0 = Release|Any CPU + {C2FA83A2-8668-49DD-A1A0-0359653571CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2FA83A2-8668-49DD-A1A0-0359653571CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2FA83A2-8668-49DD-A1A0-0359653571CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2FA83A2-8668-49DD-A1A0-0359653571CA}.Release|Any CPU.Build.0 = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3804B64-C0D3-48F8-82EC-1F632F833C9E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -310,5 +317,6 @@ Global {CA82D500-1940-4068-A076-D7A8AD459FB0} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {C1BDA476-A5CC-4394-914D-48B0EC31A710} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} {0FA676D5-1349-4086-B33F-65EC2CB7DA41} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} + {C2FA83A2-8668-49DD-A1A0-0359653571CA} = {95C16AED-FD57-42A0-86C3-2CF4300A4817} EndGlobalSection EndGlobal diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Commands.Test.Utilities.csproj b/src/ServiceManagement/Services/Commands.Test.Utilities/Commands.Test.Utilities.csproj index 21b4fa4c1299..bd4667090c11 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Commands.Test.Utilities.csproj +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Commands.Test.Utilities.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -16,8 +17,7 @@ ..\..\..\ true /assemblyCompareMode:StrongNameIgnoringVersion - - + 4bd0edfb true @@ -51,10 +51,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -70,12 +66,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -131,6 +127,22 @@ + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + @@ -155,6 +167,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/AzureAssert.cs b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/AzureAssert.cs index 6668883aee64..abcbc0a2b81d 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/AzureAssert.cs +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/AzureAssert.cs @@ -26,7 +26,7 @@ namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { using ConfigConfigurationSetting = Commands.Utilities.Common.XmlSchema.ServiceConfigurationSchema.ConfigurationSetting; using DefinitionConfigurationSetting = Commands.Utilities.Common.XmlSchema.ServiceDefinitionSchema.ConfigurationSetting; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; public static class AzureAssert { diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FakeAccessToken.cs b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FakeAccessToken.cs index d34b9e36618e..0c1e40c568ac 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FakeAccessToken.cs +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FakeAccessToken.cs @@ -13,7 +13,7 @@ // ---------------------------------------------------------------------------------- using System; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FakeAccessTokenProvider.cs b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FakeAccessTokenProvider.cs index 58db55c928f1..5cee4eeba399 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FakeAccessTokenProvider.cs +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FakeAccessTokenProvider.cs @@ -13,9 +13,9 @@ // ---------------------------------------------------------------------------------- using System.Security; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FileSystemHelper.cs b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FileSystemHelper.cs index 1e9e2f94ec32..ac7717b172b2 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FileSystemHelper.cs +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Common/FileSystemHelper.cs @@ -18,8 +18,9 @@ using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Common { @@ -50,13 +51,7 @@ public class FileSystemHelper : IDisposable /// Monitors changes to the file system. /// private FileSystemWatcher _watcher = null; - - /// - /// The previous Environment.CurrentDirectory which is cached so it can - /// be restored on disposal. - /// - private string _previousDirectory = null; - + /// /// Gets or sets a value indicating whether to enable monitoring on /// the portion of the file system being managed by FileSystemHelper. @@ -144,15 +139,13 @@ protected virtual void Dispose(bool disposing) AzureSdkPath = null; } - - // Restore the previous CurrentDirectory - if (_previousDirectory != null) + + Log("Deleting directory {0}", RootPath); + try { - Environment.CurrentDirectory = _previousDirectory; + FileUtilities.DataStore.DeleteDirectory(RootPath); } - - Log("Deleting directory {0}", RootPath); - FileUtilities.DataStore.DeleteDirectory(RootPath); + catch { } DisposeWatcher(); @@ -215,7 +208,7 @@ public string GetFullPath(string relativePath) /// /// Create a random directory name that doesn't yet exist on disk. /// - /// A random, non-existant directory name. + /// A random, non-existent directory name. public static string GetTemporaryDirectoryName() { string path = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); @@ -306,9 +299,7 @@ public string CreateNewService(string serviceName) { CloudServiceProject newService = new CloudServiceProject(RootPath, serviceName, FileUtilities.GetContentFilePath(@"..\..\..\..\..\Package\Debug\ServiceManagement\Azure\Services")); string path = Path.Combine(RootPath, serviceName); - _previousDirectory = Environment.CurrentDirectory; - Environment.CurrentDirectory = path; - + TestMockSupport.TestExecutionFolder = path; return path; } @@ -324,8 +315,7 @@ public void CreateDirectoryWithPrebuiltPackage(string packageName, out string pa + "xmlns=\"http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration\" " + "osFamily=\"2\" osVersion=\"*\" />"; FileUtilities.DataStore.WriteFile(configuration, template); - _previousDirectory = Environment.CurrentDirectory; - Environment.CurrentDirectory = RootPath; + TestMockSupport.TestExecutionFolder = RootPath; } } } diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Properties/AssemblyInfo.cs b/src/ServiceManagement/Services/Commands.Test.Utilities/Properties/AssemblyInfo.cs index 40648d210f9a..b39c8cb961c5 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Properties/AssemblyInfo.cs @@ -16,6 +16,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -45,6 +46,7 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] #if SIGN [assembly: InternalsVisibleTo("Microsoft.WindowsAzure.Commands.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] [assembly: InternalsVisibleTo("Microsoft.WindowsAzure.Commands.HDInsight.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9")] diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/Websites/WebsitesTestBase.cs b/src/ServiceManagement/Services/Commands.Test.Utilities/Websites/WebsitesTestBase.cs index 4b3790e784fc..acf0a25c41b8 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/Websites/WebsitesTestBase.cs +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/Websites/WebsitesTestBase.cs @@ -17,9 +17,9 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using System; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Utilities.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test.Utilities/packages.config b/src/ServiceManagement/Services/Commands.Test.Utilities/packages.config index 52e42c131f19..68cef66e23a2 100644 --- a/src/ServiceManagement/Services/Commands.Test.Utilities/packages.config +++ b/src/ServiceManagement/Services/Commands.Test.Utilities/packages.config @@ -2,7 +2,6 @@ - @@ -10,12 +9,18 @@ - - + + - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/DisableAzureRemoteDesktopCommandTest.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/DisableAzureRemoteDesktopCommandTest.cs index fa26a2a2dea0..ef3465d223d4 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/DisableAzureRemoteDesktopCommandTest.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/DisableAzureRemoteDesktopCommandTest.cs @@ -24,7 +24,7 @@ using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Development { diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/EnableAzureRemoteDesktopCommandTest.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/EnableAzureRemoteDesktopCommandTest.cs index d4d4b7674f85..280821e377ed 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/EnableAzureRemoteDesktopCommandTest.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/EnableAzureRemoteDesktopCommandTest.cs @@ -27,7 +27,7 @@ using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Development { diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/SaveAzureServiceProjectPackageTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/SaveAzureServiceProjectPackageTests.cs index 7802f1b702df..71f42bcf3e63 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/SaveAzureServiceProjectPackageTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/SaveAzureServiceProjectPackageTests.cs @@ -25,7 +25,7 @@ using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Development { diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/AddAzureWebRoleTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/AddAzureWebRoleTests.cs index c24e8d09229f..996a404a60d1 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/AddAzureWebRoleTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/AddAzureWebRoleTests.cs @@ -23,6 +23,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.Common; +using System; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Development.Scaffolding { @@ -93,7 +94,7 @@ public void AddAzureWebRoleWillRecreateDeploymentSettings() public void AddAzureWebRoleWithTemplateFolder() { string scaffoldingPath = "MyWebTemplateFolder"; - Directory.CreateDirectory(Path.Combine(System.Environment.CurrentDirectory, scaffoldingPath)); + Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, scaffoldingPath)); using (FileSystemHelper files = new FileSystemHelper(this)) { @@ -123,7 +124,7 @@ public void AddAzureWebRoleWithMissingScaffoldXmlFail() { string roleName = "WebRole1"; string serviceName = "AzureService"; - string scaffoldingPath = "TemplateMissingScaffoldXml"; + string scaffoldingPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TemplateMissingScaffoldXml"); if (Directory.Exists(scaffoldingPath)) { Directory.Delete(scaffoldingPath, true); diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/AddAzureWorkerRoleTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/AddAzureWorkerRoleTests.cs index 5af03241a0d6..1a28eac1e3ba 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/AddAzureWorkerRoleTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/AddAzureWorkerRoleTests.cs @@ -23,6 +23,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.Common; +using System; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Development.Scaffolding { @@ -48,8 +49,7 @@ public void AddAzureWorkerRoleProcess() string serviceName = "AzureService"; string rootPath = files.CreateNewService(serviceName); string expectedVerboseMessage = string.Format(Resources.AddRoleMessageCreate, rootPath, roleName); - string originalDirectory = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(rootPath); + TestMockSupport.TestExecutionFolder = rootPath; addWorkerCmdlet = new AddAzureWorkerRoleCommand() { RootPath = rootPath, CommandRuntime = mockCommandRuntime, Name = roleName }; addWorkerCmdlet.ExecuteCmdlet(); @@ -57,8 +57,6 @@ public void AddAzureWorkerRoleProcess() AzureAssert.ScaffoldingExists(Path.Combine(rootPath, roleName), Path.Combine(Resources.GeneralScaffolding, Resources.WorkerRole)); Assert.Equal(roleName, ((PSObject)mockCommandRuntime.OutputPipeline[0]).GetVariableValue(Parameters.RoleName)); Assert.Equal(expectedVerboseMessage, mockCommandRuntime.VerboseStream[0]); - - Directory.SetCurrentDirectory(originalDirectory); } } @@ -72,8 +70,7 @@ public void AddAzureWorkerRoleWillRecreateDeploymentSettings() string rootPath = files.CreateNewService(serviceName); string expectedVerboseMessage = string.Format(Resources.AddRoleMessageCreate, rootPath, roleName); string settingsFilePath = Path.Combine(rootPath, Resources.SettingsFileName); - string originalDirectory = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(rootPath); + TestMockSupport.TestExecutionFolder = rootPath; File.Delete(settingsFilePath); Assert.False(File.Exists(settingsFilePath)); addWorkerCmdlet = new AddAzureWorkerRoleCommand() { RootPath = rootPath, CommandRuntime = mockCommandRuntime, Name = roleName }; @@ -84,8 +81,6 @@ public void AddAzureWorkerRoleWillRecreateDeploymentSettings() Assert.Equal(roleName, ((PSObject)mockCommandRuntime.OutputPipeline[0]).GetVariableValue(Parameters.RoleName)); Assert.Equal(expectedVerboseMessage, mockCommandRuntime.VerboseStream[0]); Assert.True(File.Exists(settingsFilePath)); - - Directory.SetCurrentDirectory(originalDirectory); } } @@ -124,7 +119,7 @@ public void AddAzureWorkerRoleWithTemplateFolder() public void AddAzureWorkerRoleWithMissingScaffoldXmlFail() { string scaffoldingPath = "TemplateMissingScaffoldXml"; - Directory.CreateDirectory(Path.Combine(System.Environment.CurrentDirectory, scaffoldingPath)); + Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, scaffoldingPath)); using (FileSystemHelper files = new FileSystemHelper(this)) { diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/NewAzureRoleTemplateTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/NewAzureRoleTemplateTests.cs index f5bb67e0fefe..cb947951f6a8 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/NewAzureRoleTemplateTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/NewAzureRoleTemplateTests.cs @@ -24,6 +24,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.Common; +using System; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Development.Scaffolding { @@ -44,26 +45,36 @@ public NewAzureRoleTemplateTests() [Trait(Category.AcceptanceType, Category.CheckIn)] public void NewAzureRoleTemplateWithWebRole() { - string outputPath = Path.Combine(Directory.GetCurrentDirectory(), "WebRoleTemplate"); + string outputPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "WebRoleTemplate"); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; addTemplateCmdlet = new NewAzureRoleTemplateCommand() { Web = true, CommandRuntime = mockCommandRuntime }; addTemplateCmdlet.ExecuteCmdlet(); Assert.Equal(outputPath, ((PSObject)mockCommandRuntime.OutputPipeline[0]).GetVariableValue(Parameters.Path)); - Testing.AssertDirectoryIdentical(Path.Combine(Resources.GeneralScaffolding, RoleType.WebRole.ToString()), outputPath); + Testing.AssertDirectoryIdentical( + Path.Combine( + AppDomain.CurrentDomain.BaseDirectory, + Resources.GeneralScaffolding, + RoleType.WebRole.ToString()), outputPath); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void NewAzureRoleTemplateWithWorkerRole() { - string outputPath = Path.Combine(Directory.GetCurrentDirectory(), "WorkerRoleTemplate"); + string outputPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "WorkerRoleTemplate"); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; addTemplateCmdlet = new NewAzureRoleTemplateCommand() { Worker = true, CommandRuntime = mockCommandRuntime }; addTemplateCmdlet.ExecuteCmdlet(); Assert.Equal(outputPath, ((PSObject)mockCommandRuntime.OutputPipeline[0]).GetVariableValue(Parameters.Path)); - Testing.AssertDirectoryIdentical(Path.Combine(Resources.GeneralScaffolding, RoleType.WorkerRole.ToString()), outputPath); + Testing.AssertDirectoryIdentical( + Path.Combine( + AppDomain.CurrentDomain.BaseDirectory, + Resources.GeneralScaffolding, + RoleType.WorkerRole.ToString()), outputPath); } [Fact] @@ -78,7 +89,12 @@ public void NewAzureRoleTemplateWithOutputPath() addTemplateCmdlet.ExecuteCmdlet(); Assert.Equal(outputPath, ((PSObject)mockCommandRuntime.OutputPipeline[0]).GetVariableValue(Parameters.Path)); - Testing.AssertDirectoryIdentical(Path.Combine(Resources.GeneralScaffolding, RoleType.WorkerRole.ToString()), outputPath); + Testing.AssertDirectoryIdentical( + Path.Combine( + AppDomain.CurrentDomain.BaseDirectory, + Resources.GeneralScaffolding, + RoleType.WorkerRole.ToString()), + outputPath); } } @@ -97,18 +113,20 @@ public void NewAzureRoleTemplateWithDirectoryExists() outputPath, ((PSObject)mockCommandRuntime.OutputPipeline[0]).GetVariableValue(Parameters.Path)); Testing.AssertDirectoryIdentical( - Path.Combine(Resources.GeneralScaffolding, - RoleType.WorkerRole.ToString()), - outputPath); + Path.Combine( + AppDomain.CurrentDomain.BaseDirectory, + Resources.GeneralScaffolding, + RoleType.WorkerRole.ToString()), + outputPath); } } [Fact(Skip = "TODO: Fix SetScaffolding in CloudServiceProject.")] public void NewAzureRoleTemplateWithRunningOutsideDefaultDirectory() { - string outputPath = Path.Combine(Directory.GetCurrentDirectory(), "TestDir", "WebRoleTemplate"); + string outputPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestDir", "WebRoleTemplate"); addTemplateCmdlet = new NewAzureRoleTemplateCommand() { Web = true, CommandRuntime = mockCommandRuntime }; - string originalDir = Directory.GetCurrentDirectory(); + string originalDir = AppDomain.CurrentDomain.BaseDirectory; Directory.CreateDirectory("TestDir"); Directory.SetCurrentDirectory("TestDir"); diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/NewAzureServiceTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/NewAzureServiceTests.cs index ed6ae655a507..87a68d6590e9 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/NewAzureServiceTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/Scaffolding/NewAzureServiceTests.cs @@ -22,6 +22,7 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Properties; +using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Development.Scaffolding.Cmdlet { @@ -37,6 +38,7 @@ public NewAzureServiceTests() cmdlet = new NewAzureServiceProjectCommand(); mockCommandRuntime = new MockCommandRuntime(); cmdlet.CommandRuntime = mockCommandRuntime; + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; } [Fact] diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/SetAzureInstancesTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/SetAzureInstancesTests.cs index 9b52d6cf59a3..bf9ee2fcd41d 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Development/SetAzureInstancesTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Development/SetAzureInstancesTests.cs @@ -23,6 +23,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; +using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Development.Tests.Cmdlet { @@ -238,54 +239,53 @@ public void SetAzureInstancesProcessTestsCaseInsensitive() [Trait(Category.AcceptanceType, Category.CheckIn)] public void SetAzureServiceProjectRoleWithoutPassingRoleName() { - string originalDirectory = Directory.GetCurrentDirectory(); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; string serviceName = "AzureService1"; - if (Directory.Exists(serviceName)) + if (Directory.Exists(Path.Combine(TestMockSupport.TestExecutionFolder,serviceName))) { - Directory.Delete(serviceName, true); + Directory.Delete(Path.Combine(TestMockSupport.TestExecutionFolder, serviceName), true); } - CloudServiceProject service = new CloudServiceProject(Directory.GetCurrentDirectory(), serviceName, null); + CloudServiceProject service = new CloudServiceProject(TestMockSupport.TestExecutionFolder, serviceName, null); service.AddWebRole(Test.Utilities.Common.Data.NodeWebRoleScaffoldingPath); - Directory.SetCurrentDirectory(Path.Combine(service.Paths.RootPath, "WebRole1")); + TestMockSupport.TestExecutionFolder = Path.Combine(service.Paths.RootPath, "WebRole1"); cmdlet.RoleName = string.Empty; cmdlet.ExecuteCmdlet(); service = new CloudServiceProject(service.Paths.RootPath, null); Assert.Equal("WebRole1", cmdlet.RoleName); - Directory.SetCurrentDirectory(originalDirectory); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void SetAzureServiceProjectRoleInDeepDirectory() { - string originalDirectory = Directory.GetCurrentDirectory(); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; string serviceName = "AzureService2"; - if (Directory.Exists(serviceName)) + if (Directory.Exists(Path.Combine(TestMockSupport.TestExecutionFolder, serviceName))) { - Directory.Delete(serviceName, true); + Directory.Delete(Path.Combine(TestMockSupport.TestExecutionFolder, serviceName), true); } - CloudServiceProject service = new CloudServiceProject(Directory.GetCurrentDirectory(), serviceName, null); + CloudServiceProject service = new CloudServiceProject(TestMockSupport.TestExecutionFolder, serviceName, null); service.AddWebRole(Test.Utilities.Common.Data.NodeWebRoleScaffoldingPath); - Directory.SetCurrentDirectory(Path.Combine(service.Paths.RootPath, "WebRole1", "bin")); + TestMockSupport.TestExecutionFolder = Path.Combine(service.Paths.RootPath, "WebRole1", "bin"); cmdlet.RoleName = string.Empty; cmdlet.ExecuteCmdlet(); service = new CloudServiceProject(service.Paths.RootPath, null); Assert.Equal("WebRole1", cmdlet.RoleName); - Directory.SetCurrentDirectory(originalDirectory); } [Fact] [Trait(Category.AcceptanceType, Category.CheckIn)] public void SetAzureServiceProjectRoleInServiecRootDirectoryFail() { + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; string serviceName = "AzureService3"; - if (Directory.Exists(serviceName)) + if (Directory.Exists(Path.Combine(TestMockSupport.TestExecutionFolder, serviceName))) { - Directory.Delete(serviceName, true); + Directory.Delete(Path.Combine(TestMockSupport.TestExecutionFolder, serviceName), true); } - CloudServiceProject service = new CloudServiceProject(Directory.GetCurrentDirectory(), serviceName, null); + CloudServiceProject service = new CloudServiceProject(TestMockSupport.TestExecutionFolder, serviceName, null); service.AddWebRole(Test.Utilities.Common.Data.NodeWebRoleScaffoldingPath); cmdlet.RoleName = string.Empty; Testing.AssertThrows(() => cmdlet.ExecuteCmdlet(), Resources.CannotFindServiceRoot); diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/AzureServiceTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/AzureServiceTests.cs index efe34f84501d..1348ced88b69 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/AzureServiceTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/AzureServiceTests.cs @@ -27,7 +27,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Utilities { diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/CloudServiceClientTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/CloudServiceClientTests.cs index 64ee165d9b13..e319afaa57b3 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/CloudServiceClientTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/CloudServiceClientTests.cs @@ -19,7 +19,7 @@ using System.Threading; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.CloudService; @@ -32,7 +32,7 @@ using Moq; using MockStorageService = Microsoft.WindowsAzure.Commands.Test.Utilities.Common.MockStorageService; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Utilities diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/GeneralTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/GeneralTests.cs index b1933af02838..763cd4ef1a6c 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/GeneralTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/GeneralTests.cs @@ -19,7 +19,7 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceDefinitionSchema; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Utilities { diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/PublishContextTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/PublishContextTests.cs index cdb277b2467e..d7630e3219fd 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/PublishContextTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/PublishContextTests.cs @@ -24,8 +24,9 @@ using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Properties; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Utilities { diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/ScaffoldTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/ScaffoldTests.cs index 584eb9d23ed5..595db8a66973 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/ScaffoldTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/ScaffoldTests.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.CloudService.Scaffolding; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Utilities { diff --git a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/ServiceComponentsTests.cs b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/ServiceComponentsTests.cs index d3c346738733..1bb3fdd240d0 100644 --- a/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/ServiceComponentsTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/CloudService/Utilities/ServiceComponentsTests.cs @@ -23,6 +23,7 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Properties; +using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.WindowsAzure.Commands.Test.CloudService.Utilities { @@ -43,9 +44,9 @@ public ServiceComponentsTests() public void TestCleanup() { - if (Directory.Exists(serviceName)) - { - Directory.Delete(serviceName, true); + if (Directory.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, serviceName))) + { + Directory.Delete(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, serviceName), true); } } @@ -58,8 +59,11 @@ public void Dispose() [Trait(Category.AcceptanceType, Category.CheckIn)] public void ServiceComponentsTest() { - newServiceCmdlet.NewAzureServiceProcess(Directory.GetCurrentDirectory(), serviceName); - ServiceComponents components = new ServiceComponents(new PowerShellProjectPathInfo(serviceName)); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; + newServiceCmdlet.NewAzureServiceProcess(TestMockSupport.TestExecutionFolder, serviceName); + ServiceComponents components = new ServiceComponents( + new PowerShellProjectPathInfo( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, serviceName))); AzureAssert.AreEqualServiceComponents(components); } @@ -83,8 +87,10 @@ public void ServiceComponentsTestNullPathsFail() [Trait(Category.AcceptanceType, Category.CheckIn)] public void ServiceComponentsTestCloudConfigDoesNotExistFail() { - newServiceCmdlet.NewAzureServiceProcess(Directory.GetCurrentDirectory(), serviceName); - PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(serviceName); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; + newServiceCmdlet.NewAzureServiceProcess(TestMockSupport.TestExecutionFolder, serviceName); + PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, serviceName)); try { @@ -103,8 +109,10 @@ public void ServiceComponentsTestCloudConfigDoesNotExistFail() [Trait(Category.AcceptanceType, Category.CheckIn)] public void ServiceComponentsTestLocalConfigDoesNotExistFail() { - newServiceCmdlet.NewAzureServiceProcess(Directory.GetCurrentDirectory(), serviceName); - PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(serviceName); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; + newServiceCmdlet.NewAzureServiceProcess(TestMockSupport.TestExecutionFolder, serviceName); + PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, serviceName)); try { @@ -123,8 +131,10 @@ public void ServiceComponentsTestLocalConfigDoesNotExistFail() [Trait(Category.AcceptanceType, Category.CheckIn)] public void ServiceComponentsTestSettingsDoesNotExistFail() { - newServiceCmdlet.NewAzureServiceProcess(Directory.GetCurrentDirectory(), serviceName); - PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(serviceName); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; + newServiceCmdlet.NewAzureServiceProcess(TestMockSupport.TestExecutionFolder, serviceName); + PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, serviceName)); try { @@ -143,8 +153,10 @@ public void ServiceComponentsTestSettingsDoesNotExistFail() [Trait(Category.AcceptanceType, Category.CheckIn)] public void ServiceComponentsTestDefinitionDoesNotExistFail() { - newServiceCmdlet.NewAzureServiceProcess(Directory.GetCurrentDirectory(), serviceName); - PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo(serviceName); + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; + newServiceCmdlet.NewAzureServiceProcess(TestMockSupport.TestExecutionFolder, serviceName); + PowerShellProjectPathInfo paths = new PowerShellProjectPathInfo( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, serviceName)); try { diff --git a/src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj b/src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj index aca067a8dad2..b6610e924a25 100644 --- a/src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj +++ b/src/ServiceManagement/Services/Commands.Test/Commands.Test.csproj @@ -1,6 +1,7 @@  - + + Debug AnyCPU @@ -18,7 +19,7 @@ ..\..\..\ true - 5d02cb73 + cf1c4b56 true @@ -55,10 +56,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -71,12 +68,13 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll False - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -96,12 +94,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -192,12 +190,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -406,6 +412,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Services/Commands.Test/Environment/AddAzureEnvironmentTests.cs b/src/ServiceManagement/Services/Commands.Test/Environment/AddAzureEnvironmentTests.cs index 7f660fba9fe9..ac69c0d38649 100644 --- a/src/ServiceManagement/Services/Commands.Test/Environment/AddAzureEnvironmentTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Environment/AddAzureEnvironmentTests.cs @@ -14,7 +14,7 @@ using System; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Profile; using Microsoft.WindowsAzure.Commands.Profile.Models; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; @@ -22,7 +22,8 @@ using Moq; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.Environment { diff --git a/src/ServiceManagement/Services/Commands.Test/Environment/GetAzureEnvironmentTests.cs b/src/ServiceManagement/Services/Commands.Test/Environment/GetAzureEnvironmentTests.cs index d765f579993f..9feae1c92b7e 100644 --- a/src/ServiceManagement/Services/Commands.Test/Environment/GetAzureEnvironmentTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Environment/GetAzureEnvironmentTests.cs @@ -15,7 +15,7 @@ using System.Collections.Generic; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Profile; using Microsoft.WindowsAzure.Commands.Profile.Models; @@ -24,7 +24,7 @@ using Moq; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Environment { diff --git a/src/ServiceManagement/Services/Commands.Test/Environment/RemoveAzureEnvironmentTests.cs b/src/ServiceManagement/Services/Commands.Test/Environment/RemoveAzureEnvironmentTests.cs index ce42c1b2a47f..de9fece9a699 100644 --- a/src/ServiceManagement/Services/Commands.Test/Environment/RemoveAzureEnvironmentTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Environment/RemoveAzureEnvironmentTests.cs @@ -16,7 +16,7 @@ using System.Collections.Generic; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Profile; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; @@ -24,8 +24,9 @@ using Moq; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.Environment { diff --git a/src/ServiceManagement/Services/Commands.Test/Environment/SetAzureEnvironmentTests.cs b/src/ServiceManagement/Services/Commands.Test/Environment/SetAzureEnvironmentTests.cs index fd03415daa23..b7f5ecebc899 100644 --- a/src/ServiceManagement/Services/Commands.Test/Environment/SetAzureEnvironmentTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Environment/SetAzureEnvironmentTests.cs @@ -20,14 +20,15 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Profile; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.Environment { @@ -54,7 +55,7 @@ public void SetsAzureEnvironment() { Mock commandRuntimeMock = new Mock(); string name = "Katal"; - ProfileClient client = new ProfileClient(new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile))); + ProfileClient client = new ProfileClient(new AzureSMProfile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AzureSession.ProfileFile))); client.AddOrSetEnvironment(new AzureEnvironment { Name = name }); SetAzureEnvironmentCommand cmdlet = new SetAzureEnvironmentCommand() @@ -68,12 +69,13 @@ public void SetsAzureEnvironment() GalleryEndpoint = "galleryendpoint" }; + cmdlet.Profile = client.Profile; cmdlet.InvokeBeginProcessing(); cmdlet.ExecuteCmdlet(); cmdlet.InvokeEndProcessing(); commandRuntimeMock.Verify(f => f.WriteObject(It.IsAny()), Times.Once()); - client = new ProfileClient(new AzureSMProfile(Path.Combine(AzureSession.ProfileDirectory, AzureSession.ProfileFile))); + client = new ProfileClient(new AzureSMProfile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AzureSession.ProfileFile))); AzureEnvironment env = client.Profile.Environments["KaTaL"]; Assert.Equal(env.Name.ToLower(), cmdlet.Name.ToLower()); Assert.Equal(env.Endpoints[AzureEnvironment.Endpoint.PublishSettingsFileUrl], cmdlet.PublishSettingsFileUrl); diff --git a/src/ServiceManagement/Services/Commands.Test/MediaServices/GetAzureMediaServicesTests.cs b/src/ServiceManagement/Services/Commands.Test/MediaServices/GetAzureMediaServicesTests.cs index 7291975b37f7..40c0d7c1843c 100644 --- a/src/ServiceManagement/Services/Commands.Test/MediaServices/GetAzureMediaServicesTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/MediaServices/GetAzureMediaServicesTests.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.MediaServices; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; @@ -27,7 +27,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.MediaServices.Services.Entities; using Microsoft.WindowsAzure.Management.MediaServices.Models; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.MediaServices { diff --git a/src/ServiceManagement/Services/Commands.Test/MediaServices/MediaServicesClientTests.cs b/src/ServiceManagement/Services/Commands.Test/MediaServices/MediaServicesClientTests.cs index 91650d2abc38..9c3c790341a3 100644 --- a/src/ServiceManagement/Services/Commands.Test/MediaServices/MediaServicesClientTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/MediaServices/MediaServicesClientTests.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.MediaServices; using Microsoft.WindowsAzure.Management.MediaServices; using Microsoft.WindowsAzure.Management.MediaServices.Models; diff --git a/src/ServiceManagement/Services/Commands.Test/Profile/GetAzurePublishSettingsFileTests.cs b/src/ServiceManagement/Services/Commands.Test/Profile/GetAzurePublishSettingsFileTests.cs index 4be2b624267f..40a8c22bdceb 100644 --- a/src/ServiceManagement/Services/Commands.Test/Profile/GetAzurePublishSettingsFileTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Profile/GetAzurePublishSettingsFileTests.cs @@ -20,9 +20,10 @@ using Microsoft.WindowsAzure.Commands.Profile; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Moq; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Test.Profile { diff --git a/src/ServiceManagement/Services/Commands.Test/Profile/NewAzureProfileTests.cs b/src/ServiceManagement/Services/Commands.Test/Profile/NewAzureProfileTests.cs index d064a4493ab7..fd618ad6da57 100644 --- a/src/ServiceManagement/Services/Commands.Test/Profile/NewAzureProfileTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Profile/NewAzureProfileTests.cs @@ -16,8 +16,8 @@ using System.Collections.Generic; using System.Management.Automation.Language; using Microsoft.Azure.Commands.Test.Profile; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; diff --git a/src/ServiceManagement/Services/Commands.Test/Profile/ProfileCmdltsTests.cs b/src/ServiceManagement/Services/Commands.Test/Profile/ProfileCmdltsTests.cs index 5c3a535b3404..e2f2d70e9e02 100644 --- a/src/ServiceManagement/Services/Commands.Test/Profile/ProfileCmdltsTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Profile/ProfileCmdltsTests.cs @@ -16,8 +16,8 @@ using System.Security; using System.Text; using Hyak.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.IdentityModel.Clients.ActiveDirectory; using Microsoft.ServiceBus.Management; using Microsoft.WindowsAzure.Commands.Common; @@ -32,7 +32,8 @@ using System.Management.Automation; using System.Reflection; using System.Security.Cryptography.X509Certificates; -using Microsoft.Azure.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; diff --git a/src/ServiceManagement/Services/Commands.Test/Profile/ProfileTestController.cs b/src/ServiceManagement/Services/Commands.Test/Profile/ProfileTestController.cs index ec340f55d636..77f10a41736d 100644 --- a/src/ServiceManagement/Services/Commands.Test/Profile/ProfileTestController.cs +++ b/src/ServiceManagement/Services/Commands.Test/Profile/ProfileTestController.cs @@ -12,9 +12,9 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Factories; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.Azure.Test.HttpRecorder; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; diff --git a/src/ServiceManagement/Services/Commands.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/Services/Commands.Test/Properties/AssemblyInfo.cs index 7f6803a3d83a..0e3c2b050d08 100644 --- a/src/ServiceManagement/Services/Commands.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/Services/Commands.Test/Properties/AssemblyInfo.cs @@ -29,3 +29,4 @@ // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/Services/Commands.Test/ServiceBus/GetAzureSBNamespaceTest.cs b/src/ServiceManagement/Services/Commands.Test/ServiceBus/GetAzureSBNamespaceTest.cs index 716011486e47..6d68fe6c6239 100644 --- a/src/ServiceManagement/Services/Commands.Test/ServiceBus/GetAzureSBNamespaceTest.cs +++ b/src/ServiceManagement/Services/Commands.Test/ServiceBus/GetAzureSBNamespaceTest.cs @@ -24,7 +24,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.Utilities.ServiceBus; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.ServiceBus { diff --git a/src/ServiceManagement/Services/Commands.Test/WAPackIaaS/WebClient/GetAbsoluteUriTests.cs b/src/ServiceManagement/Services/Commands.Test/WAPackIaaS/WebClient/GetAbsoluteUriTests.cs index c8f609449b0b..4649a76e22a0 100644 --- a/src/ServiceManagement/Services/Commands.Test/WAPackIaaS/WebClient/GetAbsoluteUriTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/WAPackIaaS/WebClient/GetAbsoluteUriTests.cs @@ -16,7 +16,7 @@ using System.Text; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.WAPackIaaS.WebClient; namespace Microsoft.WindowsAzure.Commands.Test.WAPackIaaS.WebClient diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/DisableAzureWebsiteDiagnosticTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/DisableAzureWebsiteDiagnosticTests.cs index 2b4178923e77..aa6d840cf1c8 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/DisableAzureWebsiteDiagnosticTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/DisableAzureWebsiteDiagnosticTests.cs @@ -14,14 +14,14 @@ using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Websites; using Moq; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System; namespace Microsoft.WindowsAzure.Commands.Test.Websites diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/EnableAzureWebsiteDiagnosticTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/EnableAzureWebsiteDiagnosticTests.cs index b475ddf723ad..56fed11d1b4f 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/EnableAzureWebsiteDiagnosticTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/EnableAzureWebsiteDiagnosticTests.cs @@ -12,8 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Websites; diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebSiteMetricsTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebSiteMetricsTests.cs index 6627be21591c..e92c5be5cdfe 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebSiteMetricsTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebSiteMetricsTests.cs @@ -18,14 +18,14 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebSiteTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebSiteTests.cs index de0003087a0a..886a07e03043 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebSiteTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebSiteTests.cs @@ -12,8 +12,8 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Common; diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebsiteDeploymentTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebsiteDeploymentTests.cs index 255142049878..5784996a373c 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebsiteDeploymentTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/GetAzureWebsiteDeploymentTests.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; @@ -26,7 +26,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/NewAzureWebSiteTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/NewAzureWebSiteTests.cs index 46ead60572e3..bbca1f6c3674 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/NewAzureWebSiteTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/NewAzureWebSiteTests.cs @@ -16,7 +16,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Common; @@ -25,7 +25,7 @@ using Microsoft.WindowsAzure.Commands.Websites; using Microsoft.WindowsAzure.Management.WebSites.Models; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/PublishAzureWebsiteProjectTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/PublishAzureWebsiteProjectTests.cs index e25383fc0bb9..ae55bd36cbfa 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/PublishAzureWebsiteProjectTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/PublishAzureWebsiteProjectTests.cs @@ -9,6 +9,8 @@ using Moq; using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; +using System; +using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.WindowsAzure.Commands.Test.Websites { @@ -74,16 +76,16 @@ public void PublishFromProjectFile() { var websiteName = "test-site"; string slot = null; - var projectFile = string.Format(@"{0}\Resources\MyWebApplication\WebApplication4.csproj", Directory.GetCurrentDirectory()); + var projectFile = string.Format(@"{0}\Resources\MyWebApplication\WebApplication4.csproj", AppDomain.CurrentDomain.BaseDirectory); var configuration = "Debug"; - var logFile = string.Format(@"{0}\build.log", Directory.GetCurrentDirectory()); + var logFile = string.Format(@"{0}\build.log", AppDomain.CurrentDomain.BaseDirectory); var connectionStrings = new Hashtable(); connectionStrings["DefaultConnection"] = "test-connection-string"; string setParametersFile = "testfile.xml"; using (FileSystemHelper files = new FileSystemHelper(this)) { - string originalDirectory = Directory.GetCurrentDirectory(); + string originalDirectory = AppDomain.CurrentDomain.BaseDirectory; } var publishProfile = new WebSiteGetPublishProfileResponse.PublishProfile() @@ -114,7 +116,7 @@ public void PublishFromProjectFile() }); Mock powerShellMock = new Mock(); - + TestMockSupport.TestExecutionFolder = AppDomain.CurrentDomain.BaseDirectory; var command = new PublishAzureWebsiteProject() { CommandRuntime = powerShellMock.Object, diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/RemoveAzureWebSiteTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/RemoveAzureWebSiteTests.cs index 156ff740cd4b..a77ee122014a 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/RemoveAzureWebSiteTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/RemoveAzureWebSiteTests.cs @@ -16,7 +16,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; @@ -24,7 +24,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/RestartAzureWebsiteTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/RestartAzureWebsiteTests.cs index 24740ec0e296..381ec474abac 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/RestartAzureWebsiteTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/RestartAzureWebsiteTests.cs @@ -16,13 +16,13 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/RestoreAzureWebsiteDeploymentTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/RestoreAzureWebsiteDeploymentTests.cs index d9e1bdb2cb2d..56a9f0c28884 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/RestoreAzureWebsiteDeploymentTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/RestoreAzureWebsiteDeploymentTests.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; @@ -26,7 +26,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/SaveAzureWebsiteLogTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/SaveAzureWebsiteLogTests.cs index 5c7c2c1032b5..3c05974886b6 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/SaveAzureWebsiteLogTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/SaveAzureWebsiteLogTests.cs @@ -19,7 +19,7 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Common; @@ -27,7 +27,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { @@ -93,9 +93,10 @@ public void SaveAzureWebsiteLogTest() subscription.Properties[AzureSubscription.Property.Default] = "True"; currentProfile.Subscriptions[new Guid(base.subscriptionId)] = subscription; - getAzureWebsiteLogCommand.DefaultCurrentPath = ""; + getAzureWebsiteLogCommand.DefaultCurrentPath = AppDomain.CurrentDomain.BaseDirectory; getAzureWebsiteLogCommand.ExecuteCmdlet(); - Assert.Equal("test", FileUtilities.DataStore.ReadFileAsText(SaveAzureWebsiteLogCommand.DefaultOutput)); + Assert.Equal("test", FileUtilities.DataStore.ReadFileAsText( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, SaveAzureWebsiteLogCommand.DefaultOutput))); } [Fact] @@ -103,7 +104,7 @@ public void SaveAzureWebsiteLogTest() public void SaveAzureWebsiteLogWithNoFileExtensionTest() { // Setup - string expectedOutput = "file_without_ext.zip"; + string expectedOutput = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "file_without_ext.zip"); SimpleDeploymentServiceManagement deploymentChannel = new SimpleDeploymentServiceManagement { @@ -124,7 +125,7 @@ public void SaveAzureWebsiteLogWithNoFileExtensionTest() subscription.Properties[AzureSubscription.Property.Default] = "True"; currentProfile.Subscriptions[new Guid(base.subscriptionId)] = subscription; - getAzureWebsiteLogCommand.DefaultCurrentPath = ""; + getAzureWebsiteLogCommand.DefaultCurrentPath = AppDomain.CurrentDomain.BaseDirectory; getAzureWebsiteLogCommand.ExecuteCmdlet(); Assert.Equal("test with no extension", FileUtilities.DataStore.ReadFileAsText(expectedOutput)); } @@ -153,9 +154,10 @@ public void SaveAzureWebsiteLogWithSlotTest() subscription.Properties[AzureSubscription.Property.Default] = "True"; currentProfile.Subscriptions[new Guid(base.subscriptionId)] = subscription; - getAzureWebsiteLogCommand.DefaultCurrentPath = ""; + getAzureWebsiteLogCommand.DefaultCurrentPath = AppDomain.CurrentDomain.BaseDirectory; getAzureWebsiteLogCommand.ExecuteCmdlet(); - Assert.Equal("test", FileUtilities.DataStore.ReadFileAsText(SaveAzureWebsiteLogCommand.DefaultOutput)); + Assert.Equal("test", FileUtilities.DataStore.ReadFileAsText( + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, SaveAzureWebsiteLogCommand.DefaultOutput))); } } } diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/SetAzureWebSiteTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/SetAzureWebSiteTests.cs index 4643b0f1c3de..06ad79499d9f 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/SetAzureWebSiteTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/SetAzureWebSiteTests.cs @@ -18,14 +18,14 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/ShowAzurePortalTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/ShowAzurePortalTests.cs index b4e5ec5419a7..940f66a0ecb7 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/ShowAzurePortalTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/ShowAzurePortalTests.cs @@ -17,7 +17,7 @@ using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Websites; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/ShowAzureWebsiteTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/ShowAzureWebsiteTests.cs index dc4c674747dd..72098228a709 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/ShowAzureWebsiteTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/ShowAzureWebsiteTests.cs @@ -16,14 +16,14 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/StartAzureWebSiteTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/StartAzureWebSiteTests.cs index a76fe37ad9b7..8d092a36547d 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/StartAzureWebSiteTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/StartAzureWebSiteTests.cs @@ -16,13 +16,13 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/StopAzureWebSiteTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/StopAzureWebSiteTests.cs index c8fc45718f5f..c794009fa3f9 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/StopAzureWebSiteTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/StopAzureWebSiteTests.cs @@ -16,13 +16,13 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/SwitchAzureWebSiteSlotTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/SwitchAzureWebSiteSlotTests.cs index 5d9e4abf8c92..e4299c83fa20 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/SwitchAzureWebSiteSlotTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/SwitchAzureWebSiteSlotTests.cs @@ -17,14 +17,14 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/UpdateAzureWebsiteRepositoryTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/UpdateAzureWebsiteRepositoryTests.cs index d199fcdba6f5..0c5c8cf3efff 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/UpdateAzureWebsiteRepositoryTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/UpdateAzureWebsiteRepositoryTests.cs @@ -17,14 +17,14 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites { diff --git a/src/ServiceManagement/Services/Commands.Test/Websites/WebHostingPlans/GetAzureWebHostingPlanTests.cs b/src/ServiceManagement/Services/Commands.Test/Websites/WebHostingPlans/GetAzureWebHostingPlanTests.cs index fec870eff1ea..f90eba99c487 100644 --- a/src/ServiceManagement/Services/Commands.Test/Websites/WebHostingPlans/GetAzureWebHostingPlanTests.cs +++ b/src/ServiceManagement/Services/Commands.Test/Websites/WebHostingPlans/GetAzureWebHostingPlanTests.cs @@ -19,14 +19,14 @@ using Microsoft.WindowsAzure.Commands.ScenarioTest; using Xunit; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Test.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Websites.WebHostingPlan; using Moq; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Test.Websites.WebHostingPlans { diff --git a/src/ServiceManagement/Services/Commands.Test/packages.config b/src/ServiceManagement/Services/Commands.Test/packages.config index 0835c6fe37e6..8a94988f22d1 100644 --- a/src/ServiceManagement/Services/Commands.Test/packages.config +++ b/src/ServiceManagement/Services/Commands.Test/packages.config @@ -2,12 +2,11 @@ - - - + + @@ -16,8 +15,8 @@ - - + + @@ -33,7 +32,11 @@ - - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/Services/Commands.Utilities/CloudService/CloudServiceClient.cs b/src/ServiceManagement/Services/Commands.Utilities/CloudService/CloudServiceClient.cs index 1f734ed34575..785b52642c48 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/CloudService/CloudServiceClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/CloudService/CloudServiceClient.cs @@ -22,7 +22,7 @@ using System.Security.Cryptography.X509Certificates; using System.Threading; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.Utilities.CloudService.AzureTools; using Microsoft.WindowsAzure.Commands.Utilities.CloudService.Model; @@ -41,8 +41,8 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService { using ConfigCertificate = Common.XmlSchema.ServiceConfigurationSchema.Certificate; using ConfigConfigurationSetting = Common.XmlSchema.ServiceConfigurationSchema.ConfigurationSetting; - using Microsoft.Azure.Common.Authentication.Models; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; using Hyak.Common; public class CloudServiceClient : ICloudServiceClient diff --git a/src/ServiceManagement/Services/Commands.Utilities/Commands.Utilities.csproj b/src/ServiceManagement/Services/Commands.Utilities/Commands.Utilities.csproj index 71d6ec0ce294..93f53d386664 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Commands.Utilities.csproj +++ b/src/ServiceManagement/Services/Commands.Utilities/Commands.Utilities.csproj @@ -62,10 +62,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -99,12 +95,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -686,6 +682,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/AzureTools/CsPack.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/AzureTools/CsPack.cs index bcf3a6d82c1d..a29e5814c4bb 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/AzureTools/CsPack.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/AzureTools/CsPack.cs @@ -23,7 +23,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceDefinitionSchema; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService.AzureTools { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/ClientProvider.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/ClientProvider.cs index 922d8f7700f1..2b2c10c4d6a4 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/ClientProvider.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/ClientProvider.cs @@ -14,8 +14,8 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.Common { - using Microsoft.Azure.Common.Authentication; - using Microsoft.Azure.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management; using Microsoft.WindowsAzure.Management.Compute; using Microsoft.WindowsAzure.Management.Network; diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/CloudServicePathInfo.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/CloudServicePathInfo.cs index 2f40429eed26..047c327bc644 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/CloudServicePathInfo.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/CloudServicePathInfo.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/CloudServiceProject.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/CloudServiceProject.cs index b97756d67221..6b04764a3e8f 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/CloudServiceProject.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/CloudServiceProject.cs @@ -27,7 +27,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceDefinitionSchema; using Microsoft.WindowsAzure.Commands.Utilities; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/CommonUtilities.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/CommonUtilities.cs index 01db3dc0ff4a..68a5120c45c4 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/CommonUtilities.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/CommonUtilities.cs @@ -17,7 +17,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceConfigurationSchema; using Microsoft.WindowsAzure.Commands.Utilities.Properties; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.Common { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/JavaScriptPackageHelpers.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/JavaScriptPackageHelpers.cs index 3692c859ff31..939ffce5b94a 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/JavaScriptPackageHelpers.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/JavaScriptPackageHelpers.cs @@ -18,7 +18,7 @@ using System.Web.Script.Serialization; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/PublishContext.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/PublishContext.cs index 807c8c0847df..1b11d0540e6f 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/PublishContext.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/PublishContext.cs @@ -17,9 +17,10 @@ using System.Linq; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Utilities.Properties; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/RoleInfo.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/RoleInfo.cs index e4182bd5e552..ce877caae88d 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/RoleInfo.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/RoleInfo.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceConfigurationSchema; diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/NodeRules.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/NodeRules.cs index 23c0b7bf79d9..3ccb143a96b6 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/NodeRules.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/NodeRules.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceConfigurationSchema; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceDefinitionSchema; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService.Scaffolding { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/PHPRules.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/PHPRules.cs index e85f53d8689d..59ffb85ef048 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/PHPRules.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/PHPRules.cs @@ -17,7 +17,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceConfigurationSchema; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceDefinitionSchema; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.Common; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService.Scaffolding diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/Scaffold.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/Scaffold.cs index b15f56c7f452..5e01dde1ffc7 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/Scaffold.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/Scaffolding/Scaffold.cs @@ -20,7 +20,7 @@ using System.Xml.Linq; using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService.Scaffolding { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceComponents.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceComponents.cs index 558b7cfe530c..9592303cafe6 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceComponents.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceComponents.cs @@ -22,7 +22,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceConfigurationSchema; using Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceDefinitionSchema; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceManagementBaseCmdlet.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceManagementBaseCmdlet.cs index 7f035445b3d9..5eb0d78a0a8b 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceManagementBaseCmdlet.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceManagementBaseCmdlet.cs @@ -15,8 +15,8 @@ using AutoMapper; using Hyak.Common; using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Properties; diff --git a/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceSettings.cs b/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceSettings.cs index dc96bb1723ec..84f694dcfb2e 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceSettings.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Common/ServiceSettings.cs @@ -21,7 +21,7 @@ using Microsoft.WindowsAzure.Commands.Common.Properties; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.CloudService { diff --git a/src/ServiceManagement/Services/Commands.Utilities/MediaServices/MediaServicesClient.cs b/src/ServiceManagement/Services/Commands.Utilities/MediaServices/MediaServicesClient.cs index d29515514f21..2c4f5c9a0238 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/MediaServices/MediaServicesClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/MediaServices/MediaServicesClient.cs @@ -22,7 +22,7 @@ using System.Xml; using System.Xml.Serialization; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.ServiceManagement.Model; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services; using Microsoft.WindowsAzure.Management.MediaServices; @@ -30,7 +30,7 @@ using Microsoft.WindowsAzure.Management.Storage; using Microsoft.WindowsAzure.Management.Storage.Models; using Newtonsoft.Json; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Utilities.MediaServices diff --git a/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.CreateJobs.cs b/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.CreateJobs.cs index ae9ab3488172..7ad751eb8259 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.CreateJobs.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.CreateJobs.cs @@ -20,7 +20,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Scheduler.Model; using Microsoft.WindowsAzure.Scheduler; using Microsoft.WindowsAzure.Scheduler.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.Scheduler { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.cs b/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.cs index fe0d5e459ba4..9f05d00c3095 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Scheduler/SchedulerMgmntClient.cs @@ -16,7 +16,7 @@ using System.Collections.Generic; using System.Linq; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Commands.Utilities.Scheduler.Common; using Microsoft.WindowsAzure.Commands.Utilities.Scheduler.Model; @@ -24,7 +24,7 @@ using Microsoft.WindowsAzure.Management.Scheduler.Models; using Microsoft.WindowsAzure.Scheduler; using Microsoft.WindowsAzure.Scheduler.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure; namespace Microsoft.WindowsAzure.Commands.Utilities.Scheduler diff --git a/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusClientExtensions.cs b/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusClientExtensions.cs index c7b077f6964d..3dff594460e5 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusClientExtensions.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusClientExtensions.cs @@ -22,7 +22,7 @@ using Microsoft.ServiceBus.Messaging; using Microsoft.ServiceBus.Notifications; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Microsoft.WindowsAzure.Management.ServiceBus; using Microsoft.WindowsAzure.Management.ServiceBus.Models; @@ -30,8 +30,8 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.ServiceBus { using ServiceBusNamespaceDescription = Management.ServiceBus.Models.NamespaceDescription; - using Microsoft.Azure.Common.Authentication.Models; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; using Hyak.Common; public class ServiceBusClientExtensions diff --git a/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusHelper.cs b/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusHelper.cs index 93358c9d1d76..fd2167e52516 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusHelper.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/ServiceBus/ServiceBusHelper.cs @@ -23,6 +23,7 @@ using System.Xml; using System.Xml.Linq; using System.Xml.Serialization; +using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.WindowsAzure.Commands.Utilities.ServiceBus @@ -62,7 +63,7 @@ public ServiceBusFormatter(IClientMessageFormatter originalFormatter) public object DeserializeReply(Message message, object[] parameters) { - XDocument response = XDocument.Parse(GeneralUtilities.ReadMessageBody(ref message)); + XDocument response = XDocument.Parse(ServiceManagementUtilities.ReadMessageBody(ref message)); List results = new List(); IEnumerable contents = response.Descendants(XName.Get("content", ServiceBusConstants.AtomNamespaceName)); XmlSerializer serializer = new XmlSerializer(typeof(T)); diff --git a/src/ServiceManagement/Services/Commands.Utilities/Store/StoreClient.cs b/src/ServiceManagement/Services/Commands.Utilities/Store/StoreClient.cs index 542bea6df62d..2dd0a1cf393b 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Store/StoreClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Store/StoreClient.cs @@ -19,7 +19,7 @@ using System.Security.Cryptography; using System.Text; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.MarketplaceServiceReference; using Microsoft.WindowsAzure.Commands.Utilities.Properties; @@ -32,8 +32,8 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.Store { using Resource = Management.Store.Models.CloudServiceListResponse.CloudService.AddOnResource; - using Microsoft.Azure.Common.Authentication.Models; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; public class StoreClient { diff --git a/src/ServiceManagement/Services/Commands.Utilities/WAPackIaaS/WebClient/Subscription.cs b/src/ServiceManagement/Services/Commands.Utilities/WAPackIaaS/WebClient/Subscription.cs index 6a05f58f7823..123f9b29c4b8 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/WAPackIaaS/WebClient/Subscription.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/WAPackIaaS/WebClient/Subscription.cs @@ -17,10 +17,11 @@ using System.Security; using System.Security.Cryptography.X509Certificates; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.Utilities.WAPackIaaS.WebClient { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Websites/KuduRemoteClientBase.cs b/src/ServiceManagement/Services/Commands.Utilities/Websites/KuduRemoteClientBase.cs index 6f723e751952..95f19ed91ca2 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Websites/KuduRemoteClientBase.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Websites/KuduRemoteClientBase.cs @@ -17,8 +17,8 @@ using System.Net.Http; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; namespace Microsoft.WindowsAzure.Commands.Utilities.Websites { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/Cache.cs b/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/Cache.cs index 11fe3c14f9ce..70a343b0e0b4 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/Cache.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/Cache.cs @@ -19,7 +19,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.Websites.Services { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/LinkedRevisionControl.cs b/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/LinkedRevisionControl.cs index 082caae89f5b..a48d717d336b 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/LinkedRevisionControl.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Websites/Services/LinkedRevisionControl.cs @@ -17,7 +17,7 @@ using System.Linq; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Utilities.Websites.Services { diff --git a/src/ServiceManagement/Services/Commands.Utilities/Websites/WebsitesClient.cs b/src/ServiceManagement/Services/Commands.Utilities/Websites/WebsitesClient.cs index 1b57725a4ad6..8c52917741c4 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/Websites/WebsitesClient.cs +++ b/src/ServiceManagement/Services/Commands.Utilities/Websites/WebsitesClient.cs @@ -27,7 +27,7 @@ using Microsoft.Build.Logging; using Microsoft.Web.Deployment; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Common; @@ -47,8 +47,8 @@ namespace Microsoft.WindowsAzure.Commands.Utilities.Websites { using Utilities = Services.WebEntities; - using Microsoft.Azure.Common.Authentication.Models; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication.Models; + using Microsoft.Azure.Commands.Common.Authentication; using Hyak.Common; public class WebsitesClient : IWebsitesClient diff --git a/src/ServiceManagement/Services/Commands.Utilities/packages.config b/src/ServiceManagement/Services/Commands.Utilities/packages.config index 4535f53bd8d4..e9ea81c4f76a 100644 --- a/src/ServiceManagement/Services/Commands.Utilities/packages.config +++ b/src/ServiceManagement/Services/Commands.Utilities/packages.config @@ -3,7 +3,6 @@ - @@ -15,8 +14,9 @@ - - + + + @@ -28,7 +28,6 @@ - diff --git a/src/ServiceManagement/Services/Commands/CloudService/Development/EnableAzureRemoteDesktop.cs b/src/ServiceManagement/Services/Commands/CloudService/Development/EnableAzureRemoteDesktop.cs index b44a732bfd84..05076d4dc2f8 100644 --- a/src/ServiceManagement/Services/Commands/CloudService/Development/EnableAzureRemoteDesktop.cs +++ b/src/ServiceManagement/Services/Commands/CloudService/Development/EnableAzureRemoteDesktop.cs @@ -30,7 +30,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.Properties; using Certificate = Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceConfigurationSchema.Certificate; using ConfigurationSetting = Microsoft.WindowsAzure.Commands.Utilities.Common.XmlSchema.ServiceConfigurationSchema.ConfigurationSetting; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.CloudService.Development { diff --git a/src/ServiceManagement/Services/Commands/CloudService/Development/Scaffolding/NewAzureRoleTemplate.cs b/src/ServiceManagement/Services/Commands/CloudService/Development/Scaffolding/NewAzureRoleTemplate.cs index aa9eb97d4ec4..51f94deaa8b0 100644 --- a/src/ServiceManagement/Services/Commands/CloudService/Development/Scaffolding/NewAzureRoleTemplate.cs +++ b/src/ServiceManagement/Services/Commands/CloudService/Development/Scaffolding/NewAzureRoleTemplate.cs @@ -19,7 +19,7 @@ using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Properties; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.CloudService.Development.Scaffolding { diff --git a/src/ServiceManagement/Services/Commands/CloudService/TestAzureName.cs b/src/ServiceManagement/Services/Commands/CloudService/TestAzureName.cs index 4e0683915567..69d6adf97b1b 100644 --- a/src/ServiceManagement/Services/Commands/CloudService/TestAzureName.cs +++ b/src/ServiceManagement/Services/Commands/CloudService/TestAzureName.cs @@ -14,12 +14,12 @@ using System.IO; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.CloudService; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.ServiceBus; using Microsoft.WindowsAzure.Commands.Utilities.Websites; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.Reflection; namespace Microsoft.WindowsAzure.Commands.CloudService diff --git a/src/ServiceManagement/Services/Commands/Commands.csproj b/src/ServiceManagement/Services/Commands/Commands.csproj index 34b84ad088e0..8e0bee982eb8 100644 --- a/src/ServiceManagement/Services/Commands/Commands.csproj +++ b/src/ServiceManagement/Services/Commands/Commands.csproj @@ -60,10 +60,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -73,6 +69,7 @@ + ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -90,12 +87,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -342,6 +339,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {cff09e81-1e31-444e-b4d4-a21e946c29e2} Commands.ServiceManagement.Common diff --git a/src/ServiceManagement/Services/Commands/MediaServices/AzureMediaServicesHttpClientCommandBase.cs b/src/ServiceManagement/Services/Commands/MediaServices/AzureMediaServicesHttpClientCommandBase.cs index cfc340794498..07befa06eaac 100644 --- a/src/ServiceManagement/Services/Commands/MediaServices/AzureMediaServicesHttpClientCommandBase.cs +++ b/src/ServiceManagement/Services/Commands/MediaServices/AzureMediaServicesHttpClientCommandBase.cs @@ -14,7 +14,7 @@ using System; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.MediaServices { diff --git a/src/ServiceManagement/Services/Commands/Websites/EnableAzureWebsiteDiagnostic.cs b/src/ServiceManagement/Services/Commands/Websites/EnableAzureWebsiteDiagnostic.cs index e09993e1d257..a586590986eb 100644 --- a/src/ServiceManagement/Services/Commands/Websites/EnableAzureWebsiteDiagnostic.cs +++ b/src/ServiceManagement/Services/Commands/Websites/EnableAzureWebsiteDiagnostic.cs @@ -14,7 +14,7 @@ using System.Collections.Generic; using System.Management.Automation; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Utilities.Websites; using Microsoft.WindowsAzure.Commands.Utilities.Websites.Common; diff --git a/src/ServiceManagement/Services/Commands/Websites/NewAzureWebSite.cs b/src/ServiceManagement/Services/Commands/Websites/NewAzureWebSite.cs index 72d5a0f81b8c..c8be5e56704c 100644 --- a/src/ServiceManagement/Services/Commands/Websites/NewAzureWebSite.cs +++ b/src/ServiceManagement/Services/Commands/Websites/NewAzureWebSite.cs @@ -32,7 +32,7 @@ namespace Microsoft.WindowsAzure.Commands.Websites { using GitClass = Utilities.Websites.Services.Git; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Hyak.Common; /// diff --git a/src/ServiceManagement/Services/Commands/Websites/PublishAzureWebsiteProject.cs b/src/ServiceManagement/Services/Commands/Websites/PublishAzureWebsiteProject.cs index e5a374a7eddd..a5419a8cb135 100644 --- a/src/ServiceManagement/Services/Commands/Websites/PublishAzureWebsiteProject.cs +++ b/src/ServiceManagement/Services/Commands/Websites/PublishAzureWebsiteProject.cs @@ -28,6 +28,10 @@ public class PublishAzureWebsiteProject : WebsiteContextBaseCmdlet, IDynamicPara [ValidateNotNullOrEmpty] public Hashtable ConnectionString { get; set; } + [Parameter(ParameterSetName = "Package", Position = 3, Mandatory = false, ValueFromPipelineByPropertyName = true, HelpMessage = "The configuration tokens to use for the deployment.")] + [ValidateNotNullOrEmpty] + public string Tokens { get; set; } + [Parameter(Mandatory = false, ParameterSetName = "Package", HelpMessage = "The WebDeploy SetParameters.xml file to transform configuration within the package.")] public string SetParametersFile { get; set; } @@ -83,6 +87,33 @@ public override void ExecuteCmdlet() } } + if (!File.Exists(fullSetParametersFile)) + { + if (File.Exists(Path.Combine(Path.GetDirectoryName(fullPackage), fullSetParametersFile))) + { + WriteVerbose("Setting path for Parameters file to local one to package: " + Path.Combine(Path.GetDirectoryName(fullPackage), fullSetParametersFile)); + fullSetParametersFile = Path.Combine(Path.GetDirectoryName(fullPackage),fullSetParametersFile); + } + } + + // If tokens are passed in, update the parameters file if there is one + if (!string.IsNullOrEmpty(Tokens) && !string.IsNullOrEmpty(fullSetParametersFile)) + { + // Convert tokens string to hashtable + string[] tokenSplit = Tokens.Split(';'); + + WriteVerbose(string.Format("Replacing tokens in {0}", fullSetParametersFile)); + var fileContents = File.ReadAllText(fullSetParametersFile); + + foreach (string pair in tokenSplit) + { + string[] data = pair.Split('='); + fileContents = fileContents.Replace(string.Format("__{0}__", data[0].Replace("\"", "")), data[1].Replace("\"", "")); + } + + File.WriteAllText(fullSetParametersFile, fileContents); + } + try { // Publish the package. diff --git a/src/ServiceManagement/Services/Commands/Websites/ShowAzurePortal.cs b/src/ServiceManagement/Services/Commands/Websites/ShowAzurePortal.cs index 3ed7ec203a2b..20691987bd95 100644 --- a/src/ServiceManagement/Services/Commands/Websites/ShowAzurePortal.cs +++ b/src/ServiceManagement/Services/Commands/Websites/ShowAzurePortal.cs @@ -14,10 +14,10 @@ using System.Management.Automation; using System.Security.Permissions; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Commands.Utilities.Properties; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.Websites { diff --git a/src/ServiceManagement/Services/Commands/packages.config b/src/ServiceManagement/Services/Commands/packages.config index c476087614db..aa07b5965a5c 100644 --- a/src/ServiceManagement/Services/Commands/packages.config +++ b/src/ServiceManagement/Services/Commands/packages.config @@ -2,7 +2,6 @@ - @@ -13,8 +12,8 @@ - - + + diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Commands.SqlDatabase.Test.csproj b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Commands.SqlDatabase.Test.csproj index beeec2eb3b19..a0506d65b2ae 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Commands.SqlDatabase.Test.csproj +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Commands.SqlDatabase.Test.csproj @@ -1,6 +1,7 @@  - + + Debug AnyCPU @@ -18,8 +19,7 @@ ..\..\..\ true - - + 7fdeb847 true @@ -57,10 +57,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -69,9 +65,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True + ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -89,12 +86,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -148,6 +145,22 @@ + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + @@ -232,6 +245,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/FunctionalTests/OutputFormatValidator.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/FunctionalTests/OutputFormatValidator.cs index 5aaa9d924df7..78c2118c2d03 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/FunctionalTests/OutputFormatValidator.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/FunctionalTests/OutputFormatValidator.cs @@ -16,7 +16,7 @@ using System.IO; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Test.FunctionalTests { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Properties/AssemblyInfo.cs index d28d19d5f619..4c193007b807 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -42,3 +43,4 @@ // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/TestScripts/Database/ImportExportDatabase.ps1 b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/TestScripts/Database/ImportExportDatabase.ps1 index 96f4a9a3fe65..6d4bb71861fb 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/TestScripts/Database/ImportExportDatabase.ps1 +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/TestScripts/Database/ImportExportDatabase.ps1 @@ -84,7 +84,7 @@ function GetOperationStatus # Test Get IE status with request object do { - Start-Sleep -m 1500 + Wait-Seconds 1500 $status = Get-AzureSqlDatabaseImportExportStatus $Request Write-Output "Request Status: $($status.Status)" if($status.Status -eq "Failed") @@ -121,7 +121,7 @@ function GetOperationStatusWithRequestId # Test Get IE status with request id, servername, and login credentials do { - Start-Sleep -m 1500 + Wait-Seconds 1500 $status = Get-AzureSqlDatabaseImportExportStatus -RequestId $RequestId ` -ServerName $ServerName -UserName $UserName -Password $Password diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/AzureSqlDatabaseCertAuthTests.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/AzureSqlDatabaseCertAuthTests.cs index 3a0ac4923f46..9c0f35b2f923 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/AzureSqlDatabaseCertAuthTests.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/AzureSqlDatabaseCertAuthTests.cs @@ -19,7 +19,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.MockServer; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.Server.Cmdlet; diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/AzureSqlDatabaseCopyCertAuthTests.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/AzureSqlDatabaseCopyCertAuthTests.cs index 607e52f6aa6a..2a791c8a3097 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/AzureSqlDatabaseCopyCertAuthTests.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/AzureSqlDatabaseCopyCertAuthTests.cs @@ -18,7 +18,7 @@ using System.Management.Automation; using System.Threading; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Model; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.MockServer; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.Server.Cmdlet; diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/GetRestorableDroppedDatabaseCertAuthTests.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/GetRestorableDroppedDatabaseCertAuthTests.cs index 98c4131aa5a3..fbf720c1d08c 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/GetRestorableDroppedDatabaseCertAuthTests.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/GetRestorableDroppedDatabaseCertAuthTests.cs @@ -19,7 +19,7 @@ using System.Management.Automation; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Common; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/ImportExportCmdletTests.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/ImportExportCmdletTests.cs index 9983601efe9b..f5cb4323393f 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/ImportExportCmdletTests.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/ImportExportCmdletTests.cs @@ -18,7 +18,7 @@ using System.Text.RegularExpressions; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.MockServer; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.Server.Cmdlet; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.Utilities; diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/ImportExportv12Tests.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/ImportExportv12Tests.cs index 9f53af708281..0c8e24df64ae 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/ImportExportv12Tests.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/ImportExportv12Tests.cs @@ -12,7 +12,7 @@ // limitations under the License. // ---------------------------------------------------------------------------------- -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/NewAzureSqlDatabaseServerContextTests.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/NewAzureSqlDatabaseServerContextTests.cs index 1ed1b6027751..b42bce33a817 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/NewAzureSqlDatabaseServerContextTests.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Database/Cmdlet/NewAzureSqlDatabaseServerContextTests.cs @@ -18,8 +18,8 @@ using System.Linq; using System.Management.Automation; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Firewall/Cmdlet/FirewallCmdletTests.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Firewall/Cmdlet/FirewallCmdletTests.cs index 008469dabe8c..2ed4ce24ce42 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Firewall/Cmdlet/FirewallCmdletTests.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Firewall/Cmdlet/FirewallCmdletTests.cs @@ -17,7 +17,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Model; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.MockServer; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.Server.Cmdlet; diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/MockServer/MockHttpServer.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/MockServer/MockHttpServer.cs index 8848b51ed678..c370341333c8 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/MockServer/MockHttpServer.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/MockServer/MockHttpServer.cs @@ -22,12 +22,13 @@ using System.Security.Cryptography.X509Certificates; using System.Text; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Test.Common; using Microsoft.WindowsAzure.Commands.Common.Test.Mocks; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Factories; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Factories; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.MockServer { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Server/Cmdlet/ServerCmdletTests.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Server/Cmdlet/ServerCmdletTests.cs index d58fb822031a..22f506578704 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Server/Cmdlet/ServerCmdletTests.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/Server/Cmdlet/ServerCmdletTests.cs @@ -17,7 +17,7 @@ using System.Linq; using System.Management.Automation; using Microsoft.VisualStudio.TestTools.UnitTesting; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Model; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.Database.Cmdlet; diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/UnitTestHelper.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/UnitTestHelper.cs index bdafb5a7d878..b27cb8edfd06 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/UnitTestHelper.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/UnitTests/UnitTestHelper.cs @@ -23,9 +23,10 @@ using System.Security.Cryptography.X509Certificates; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests.MockServer; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.ServiceManagemenet.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Test.UnitTests diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/packages.config b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/packages.config index e3066d8d3fa4..cc47eed15a2d 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/packages.config +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase.Test/packages.config @@ -2,10 +2,9 @@ - - + @@ -14,11 +13,17 @@ - - + + - + + + + + + + diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Commands.SqlDatabase.csproj b/src/ServiceManagement/Sql/Commands.SqlDatabase/Commands.SqlDatabase.csproj index 033f873abc00..55d26324fff9 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Commands.SqlDatabase.csproj +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Commands.SqlDatabase.csproj @@ -57,10 +57,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -72,6 +68,7 @@ False ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll + False ..\..\..\packages\Microsoft.Data.Edm.5.6.4\lib\net40\Microsoft.Data.Edm.dll @@ -92,12 +89,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -238,6 +235,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {65c3a86a-716d-4e7d-ab67-1db00b3bf72d} Commands.Common.Storage diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabase.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabase.cs index edcebb15b016..2be2d57d0371 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabase.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabase.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseCopy.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseCopy.cs index 1ca4ee3b7a11..0d41f694cf80 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseCopy.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseCopy.cs @@ -22,7 +22,7 @@ namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { using DatabaseCopyModel = Model.DatabaseCopy; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; /// /// Retrieves a list of all ongoing Microsoft Azure SQL Database copy operations in the given diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseImportExportStatus.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseImportExportStatus.cs index e5b126b3a8bf..34b3274de0a4 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseImportExportStatus.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseImportExportStatus.cs @@ -19,8 +19,8 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.ImportExport; using Microsoft.WindowsAzure.Management.Sql; using Microsoft.WindowsAzure.Management.Sql.Models; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseOperation.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseOperation.cs index 076fc338b2cf..f8318e42ff6d 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseOperation.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseOperation.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseServiceObjective.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseServiceObjective.cs index 82853da110bd..f6d2164b6c28 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseServiceObjective.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseServiceObjective.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseUsages.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseUsages.cs index c40aee65fa04..2e0d84a784b2 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseUsages.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/GetAzureSqlDatabaseUsages.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/NewAzureSqlDatabase.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/NewAzureSqlDatabase.cs index c50544e421f2..6361e097780b 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/NewAzureSqlDatabase.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/NewAzureSqlDatabase.cs @@ -15,12 +15,12 @@ using System; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/NewAzureSqlDatabaseServerContext.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/NewAzureSqlDatabaseServerContext.cs index 5fb003911bc0..a4a22f9197f5 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/NewAzureSqlDatabaseServerContext.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/NewAzureSqlDatabaseServerContext.cs @@ -18,13 +18,14 @@ using System.Management.Automation; using System.Xml.Linq; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using System.IO; +using Microsoft.Azure.ServiceManagemenet.Common; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/RemoveAzureSqlDatabase.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/RemoveAzureSqlDatabase.cs index ae5021cee098..c84639064580 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/RemoveAzureSqlDatabase.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/RemoveAzureSqlDatabase.cs @@ -16,12 +16,12 @@ using System.Globalization; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/SetAzureSqlDatabase.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/SetAzureSqlDatabase.cs index 778b2d67fce3..57dced83d18d 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/SetAzureSqlDatabase.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/SetAzureSqlDatabase.cs @@ -16,12 +16,12 @@ using System.Globalization; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseCopy.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseCopy.cs index 88aefe3417e2..03f3c96bc0b9 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseCopy.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseCopy.cs @@ -24,7 +24,7 @@ namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { using DatabaseCopyModel = Model.DatabaseCopy; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; /// /// Start a copy operation for a Microsoft Azure SQL Database in the given server context. diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseExport.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseExport.cs index bae48d9dd668..38f1914b8c27 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseExport.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseExport.cs @@ -14,7 +14,7 @@ using System; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.ImportExport; @@ -22,7 +22,7 @@ using Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel; using Microsoft.WindowsAzure.Management.Sql; using Microsoft.WindowsAzure.Management.Sql.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseImport.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseImport.cs index 207bd7187d6f..fe297507a764 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseImport.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseImport.cs @@ -14,7 +14,7 @@ using System; using System.Management.Automation; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.Common.Storage; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.ImportExport; @@ -22,7 +22,7 @@ using Microsoft.WindowsAzure.Commands.Storage.Model.ResourceModel; using Microsoft.WindowsAzure.Management.Sql; using Microsoft.WindowsAzure.Management.Sql.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseRestore.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseRestore.cs index e8817db818b5..a4883bb3a16c 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseRestore.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StartAzureSqlDatabaseRestore.cs @@ -18,7 +18,7 @@ using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StopAzureSqlDatabaseCopy.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StopAzureSqlDatabaseCopy.cs index 84ab30a32745..a99387488916 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StopAzureSqlDatabaseCopy.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Database/Cmdlet/StopAzureSqlDatabaseCopy.cs @@ -25,7 +25,7 @@ namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet { using DatabaseCopyModel = Model.DatabaseCopy; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; /// /// Stop an ongoing copy operation for a Microsoft Azure SQL Database in the given server context. diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataServiceCertAuth.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataServiceCertAuth.cs index 2f509738b6ac..bf7d48d96ae2 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataServiceCertAuth.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/Services/Server/ServerDataServiceCertAuth.cs @@ -17,7 +17,7 @@ using System.Globalization; using System.Linq; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Properties; using Microsoft.WindowsAzure.Management.Sql; using Microsoft.WindowsAzure.Management.Sql.Models; @@ -26,7 +26,7 @@ namespace Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Server { using DatabaseCopyModel = Model.DatabaseCopy; using WamlDatabaseCopy = Management.Sql.Models.DatabaseCopy; - using Microsoft.Azure.Common.Authentication; + using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure; /// diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/SqlDatabaseCmdletBase.cs b/src/ServiceManagement/Sql/Commands.SqlDatabase/SqlDatabaseCmdletBase.cs index e757c083fc0a..3ec6681b3815 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/SqlDatabaseCmdletBase.cs +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/SqlDatabaseCmdletBase.cs @@ -15,12 +15,12 @@ using System; using System.Globalization; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services; using Microsoft.WindowsAzure.Commands.SqlDatabase.Services.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; using Microsoft.WindowsAzure.Management.Sql; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; namespace Microsoft.WindowsAzure.Commands.SqlDatabase { diff --git a/src/ServiceManagement/Sql/Commands.SqlDatabase/packages.config b/src/ServiceManagement/Sql/Commands.SqlDatabase/packages.config index 7cc892366a4e..79f2faaa2f17 100644 --- a/src/ServiceManagement/Sql/Commands.SqlDatabase/packages.config +++ b/src/ServiceManagement/Sql/Commands.SqlDatabase/packages.config @@ -2,7 +2,6 @@ - @@ -14,8 +13,8 @@ - - + + diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/Commands.StorSimple.Test.csproj b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/Commands.StorSimple.Test.csproj index 708a63f43847..93f783cdea34 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/Commands.StorSimple.Test.csproj +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/Commands.StorSimple.Test.csproj @@ -1,5 +1,7 @@  + + Debug @@ -13,7 +15,7 @@ 512 ..\..\..\ true - 92bc0834 + 27d0bfec true @@ -39,10 +41,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -51,10 +49,10 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll + ..\..\..\packages\Microsoft.Azure.Test.Framework.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.Framework.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -64,12 +62,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -118,12 +116,20 @@ - - ..\..\..\packages\xunit.1.9.2\lib\net20\xunit.dll + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll True - - ..\..\..\packages\xunit.extensions.1.9.2\lib\net20\xunit.extensions.dll + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll True @@ -133,6 +139,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/Properties/AssemblyInfo.cs index 27e8c002797c..9b60237b27f0 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/Properties/AssemblyInfo.cs @@ -35,3 +35,4 @@ [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/ScenarioTests/BackupPolicyTests.ps1 b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/ScenarioTests/BackupPolicyTests.ps1 index 3e1f848bc902..dd1f6ef4018e 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/ScenarioTests/BackupPolicyTests.ps1 +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/ScenarioTests/BackupPolicyTests.ps1 @@ -45,7 +45,6 @@ function Test-NewBackupPolicyAddConfig-DefaultValues $startTimeFromConfig = [datetime]::ParseExact($config.StartTime,"yyyy-MM-ddTHH:mm:sszzz",$null) $timespan = $startTimeFromConfig - $currenttime - Assert-True {$timespan.TotalSeconds -le 1} "StartDateTime is not matching" Assert-AreEqual $config.BackupType CloudSnapshot 'BackupType doesnt match' Assert-AreEqual $config.Recurrence.RecurrenceType 'Daily' 'RecurrenceType doesnt match' Assert-AreEqual $config.Recurrence.RecurrenceValue 10 'RecurrentValue doesnt match' diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/ScenarioTests/StorSimpleTestBase.cs b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/ScenarioTests/StorSimpleTestBase.cs index f411f0a23b9c..e1d51ac24857 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/ScenarioTests/StorSimpleTestBase.cs +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/ScenarioTests/StorSimpleTestBase.cs @@ -19,7 +19,7 @@ using System.Net.Security; using System.Reflection; using Microsoft.Azure; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure.Test; using Microsoft.Azure.Test.HttpRecorder; using Microsoft.WindowsAzure.Commands.ScenarioTest; diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/packages.config b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/packages.config index 5d96419ba933..1709a07b07d8 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/packages.config +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple.Test/packages.config @@ -2,21 +2,25 @@ - - + - - + + - - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple/Cmdlets/ServiceConfig/GetAzureStorSimpleStorageAccountCredential.cs b/src/ServiceManagement/StorSimple/Commands.StorSimple/Cmdlets/ServiceConfig/GetAzureStorSimpleStorageAccountCredential.cs index 37beb7dbb314..e302691dfe99 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple/Cmdlets/ServiceConfig/GetAzureStorSimpleStorageAccountCredential.cs +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple/Cmdlets/ServiceConfig/GetAzureStorSimpleStorageAccountCredential.cs @@ -38,7 +38,7 @@ public override void ExecuteCmdlet() var allSACs = StorSimpleClient.GetAllStorageAccountCredentials(); if (StorageAccountName == null) { - WriteObject(allSACs); + WriteObject(allSACs, true); WriteVerbose(string.Format(Resources.SACGet_StatusMessage, allSACs.Count, allSACs.Count > 1 ? "s" : string.Empty)); return; } @@ -60,4 +60,4 @@ public override void ExecuteCmdlet() } } } -} \ No newline at end of file +} diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple/Commands.StorSimple.csproj b/src/ServiceManagement/StorSimple/Commands.StorSimple/Commands.StorSimple.csproj index a380d7a54685..1342c034b71a 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple/Commands.StorSimple.csproj +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple/Commands.StorSimple.csproj @@ -49,10 +49,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -68,12 +64,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -205,6 +201,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple/ServiceClients/StorSimpleClient.cs b/src/ServiceManagement/StorSimple/Commands.StorSimple/ServiceClients/StorSimpleClient.cs index 4ac014c3f544..5860090c2e3e 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple/ServiceClients/StorSimpleClient.cs +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple/ServiceClients/StorSimpleClient.cs @@ -20,8 +20,8 @@ using System.Net.Security; using System.Runtime.Caching; using Hyak.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Management.Scheduler; using Microsoft.WindowsAzure.Management.StorSimple; using Microsoft.WindowsAzure.Management.StorSimple.Models; diff --git a/src/ServiceManagement/StorSimple/Commands.StorSimple/packages.config b/src/ServiceManagement/StorSimple/Commands.StorSimple/packages.config index 3acdf6bffa9f..b71d746d0019 100644 --- a/src/ServiceManagement/StorSimple/Commands.StorSimple/packages.config +++ b/src/ServiceManagement/StorSimple/Commands.StorSimple/packages.config @@ -2,7 +2,6 @@ - @@ -10,8 +9,8 @@ - - + + diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Commands.TrafficManager.Test.csproj b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Commands.TrafficManager.Test.csproj index ff5b509cd1ee..4cae989400ac 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Commands.TrafficManager.Test.csproj +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Commands.TrafficManager.Test.csproj @@ -1,6 +1,7 @@  - + + Debug @@ -15,8 +16,7 @@ ..\ true - - + 2cc0a71b true @@ -44,10 +44,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - False - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -56,7 +52,7 @@ ..\..\..\packages\Microsoft.Azure.Management.Resources.2.18.11-preview\lib\net40\Microsoft.Azure.ResourceManager.dll - ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5799.28345-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll + ..\..\..\packages\Microsoft.Azure.Test.HttpRecorder.1.0.5886.28964-prerelease\lib\net45\Microsoft.Azure.Test.HttpRecorder.dll True @@ -76,12 +72,12 @@ False ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -144,6 +140,22 @@ + + ..\..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll + True + + + ..\..\..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll + True + + + ..\..\..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll + True + + + ..\..\..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll + True + @@ -163,6 +175,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {3b48a77b-5956-4a62-9081-92ba04b02b27} Commands.Common.Test diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Properties/AssemblyInfo.cs b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Properties/AssemblyInfo.cs index 80d06828dcb6..b0c6cd043b6d 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Properties/AssemblyInfo.cs +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/Properties/AssemblyInfo.cs @@ -14,6 +14,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using Xunit; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -42,3 +43,4 @@ // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.4")] [assembly: AssemblyFileVersion("1.0.4")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/packages.config b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/packages.config index ac944a6fed4e..ffef8e3829c5 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/packages.config +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager.Test/packages.config @@ -2,10 +2,9 @@ - - + @@ -14,12 +13,18 @@ - - + + - + + + + + + + \ No newline at end of file diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Commands.TrafficManager.csproj b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Commands.TrafficManager.csproj index f9defd8bf7b8..b8372978560d 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Commands.TrafficManager.csproj +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Commands.TrafficManager.csproj @@ -51,10 +51,6 @@ ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.dll - - ..\..\..\packages\Microsoft.Azure.Common.Authentication.1.6.1-preview\lib\net45\Microsoft.Azure.Common.Authentication.dll - True - ..\..\..\packages\Microsoft.Azure.Common.2.1.0\lib\net45\Microsoft.Azure.Common.NetFramework.dll @@ -79,12 +75,12 @@ ..\..\..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.2.18.206251556\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.1.8.2\lib\net45\Microsoft.Rest.ClientRuntime.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.0.1\lib\net45\Microsoft.Rest.ClientRuntime.dll True - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.0.11.0\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll + + ..\..\..\packages\Microsoft.Rest.ClientRuntime.Azure.Authentication.2.0.1-preview\lib\net45\Microsoft.Rest.ClientRuntime.Azure.Authentication.dll True @@ -166,6 +162,10 @@ + + {d3804b64-c0d3-48f8-82ec-1f632f833c9e} + Commands.Common.Authentication + {5ee72c53-1720-4309-b54b-5fb79703195f} Commands.Common diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/TestAzureTrafficManagerDomainName.cs b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/TestAzureTrafficManagerDomainName.cs index d6afbc7a29af..e30c0ccfa1ef 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/TestAzureTrafficManagerDomainName.cs +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/TestAzureTrafficManagerDomainName.cs @@ -16,8 +16,8 @@ using Microsoft.WindowsAzure.Commands.TrafficManager.Utilities; using Microsoft.WindowsAzure.Commands.Common; using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.Azure.Common.Authentication; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication.Models; namespace Microsoft.WindowsAzure.Commands.TrafficManager { diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Utilities/TrafficManagerClient.cs b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Utilities/TrafficManagerClient.cs index a5d272ed7c86..0a90501fa852 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Utilities/TrafficManagerClient.cs +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/Utilities/TrafficManagerClient.cs @@ -16,11 +16,11 @@ using System.Collections.Generic; using System.Linq; using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.Azure.Common.Authentication.Models; +using Microsoft.Azure.Commands.Common.Authentication.Models; using Microsoft.WindowsAzure.Commands.TrafficManager.Models; using Microsoft.WindowsAzure.Management.TrafficManager; using Microsoft.WindowsAzure.Management.TrafficManager.Models; -using Microsoft.Azure.Common.Authentication; +using Microsoft.Azure.Commands.Common.Authentication; using Microsoft.Azure; using Hyak.Common; diff --git a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/packages.config b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/packages.config index 4d2752df101a..cbb8ee954a8e 100644 --- a/src/ServiceManagement/TrafficManager/Commands.TrafficManager/packages.config +++ b/src/ServiceManagement/TrafficManager/Commands.TrafficManager/packages.config @@ -1,8 +1,7 @@  - - + @@ -13,8 +12,8 @@ - - + + diff --git a/tools/NuGet.exe b/tools/NuGet.exe index c41a0d0debd8..324daa842c51 100644 Binary files a/tools/NuGet.exe and b/tools/NuGet.exe differ