Skip to content

Commit 825f5c1

Browse files
committed
Merge pull request #457 from vivsriaus/release-0.9.3
Fix for new azure resource of Microsoft.Storage
2 parents 2405634 + d4e46c9 commit 825f5c1

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

src/ResourceManager/ResourceManager/Commands.ResourceManager/Cmdlets/Entities/Resources/Resource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class Resource<TProperties>
3232
/// <summary>
3333
/// Gets or sets the id for the resource.
3434
/// </summary>
35-
[JsonProperty(Required = Required.Always)]
35+
[JsonProperty(Required = Required.Default)]
3636
public string Id { get; set; }
3737

3838
/// <summary>

src/ResourceManager/ResourceManager/Commands.ResourceManager/Cmdlets/Extensions/ResourceExtensions.cs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,26 @@ internal static class ResourceExtensions
3535
/// <param name="objectFormat">The <see cref="ResourceObjectFormat"/></param>
3636
internal static PSObject ToPsObject(this Resource<JToken> resource, ResourceObjectFormat objectFormat)
3737
{
38-
var resourceType = ResourceIdUtility.GetResourceType(resource.Id);
39-
var extensionResourceType = ResourceIdUtility.GetExtensionResourceType(resource.Id);
38+
var resourceType = string.IsNullOrEmpty(resource.Id)
39+
? null
40+
: ResourceIdUtility.GetResourceType(resource.Id);
41+
42+
var extensionResourceType = string.IsNullOrEmpty(resource.Id)
43+
? null
44+
: ResourceIdUtility.GetExtensionResourceType(resource.Id);
4045

4146
var objectDefinition = new Dictionary<string, object>
4247
{
4348
{ "Name", resource.Name },
44-
{ "ResourceId", resource.Id },
45-
{ "ResourceName", ResourceIdUtility.GetResourceName(resource.Id) },
49+
{ "ResourceId", string.IsNullOrEmpty(resource.Id) ? null : resource.Id },
50+
{ "ResourceName", string.IsNullOrEmpty(resource.Id) ? null : ResourceIdUtility.GetResourceName(resource.Id) },
4651
{ "ResourceType", resourceType },
47-
{ "ExtensionResourceName", ResourceIdUtility.GetExtensionResourceName(resource.Id) },
52+
{ "ExtensionResourceName", string.IsNullOrEmpty(resource.Id) ? null : ResourceIdUtility.GetExtensionResourceName(resource.Id) },
4853
{ "ExtensionResourceType", extensionResourceType },
4954
{ "Kind", resource.Kind },
50-
{ "ResourceGroupName", ResourceIdUtility.GetResourceGroupName(resource.Id) },
55+
{ "ResourceGroupName", string.IsNullOrEmpty(resource.Id) ? null : ResourceIdUtility.GetResourceGroupName(resource.Id) },
5156
{ "Location", resource.Location },
52-
{ "SubscriptionId", ResourceIdUtility.GetSubscriptionId(resource.Id) },
57+
{ "SubscriptionId", string.IsNullOrEmpty(resource.Id) ? null : ResourceIdUtility.GetSubscriptionId(resource.Id) },
5358
{ "Tags", TagsHelper.GetTagsHashtables(resource.Tags) },
5459
{ "Plan", resource.Plan.ToJToken().ToPsObject(objectFormat) },
5560
{ "Properties", ResourceExtensions.GetProperties(resource, objectFormat) },
@@ -58,8 +63,13 @@ internal static PSObject ToPsObject(this Resource<JToken> resource, ResourceObje
5863
{ "ETag", resource.ETag },
5964
};
6065

61-
var psObject = PowerShellUtilities.ConstructPSObject(
62-
(resourceType + extensionResourceType).Replace('/', '.'),
66+
var resourceTypeName = resourceType == null && extensionResourceType == null
67+
? null
68+
: (resourceType + extensionResourceType).Replace('/', '.');
69+
70+
var psObject =
71+
PowerShellUtilities.ConstructPSObject(
72+
resourceTypeName,
6373
objectDefinition.Where(kvp => kvp.Value != null).SelectManyArray(kvp => new[] { kvp.Key, kvp.Value }));
6474

6575
psObject.TypeNames.Add(Constants.MicrosoftAzureResource);

0 commit comments

Comments
 (0)