コード例 #1
0
        protected string GetResourceGroupName(string vaultName)
        {
            var localResourcesClient = new PSResourceManagerModels.ResourcesClient(DefaultContext)
            {
                VerboseLogger = WriteVerboseWithTimestamp,
                ErrorLogger   = WriteVerboseWithTimestamp,
                WarningLogger = WriteWarningWithTimestamp
            };

            string rg = null;
            var    resourcesByName = localResourcesClient.FilterResources(
                new PSResourceManagerModels.FilterResourcesOptions()
            {
                ResourceType = Constants.KeyVaultType
            });

            if (resourcesByName != null && resourcesByName.Count > 0)
            {
                var vault = resourcesByName.FirstOrDefault(
                    r => r.Name.Equals(vaultName, StringComparison.OrdinalIgnoreCase));
                if (vault != null)
                {
                    rg = new PSResourceManagerModels.ResourceIdentifier(vault.Id).ResourceGroupName;
                }
            }

            return(rg);
        }
コード例 #2
0
 public PSVaultIdentityItem(ResourceManagement.GenericResourceExtended resource)
 {
     PSResourceManagerModels.ResourceIdentifier identifier = new PSResourceManagerModels.ResourceIdentifier(resource.Id);
     VaultName = identifier.ResourceName;
     ResourceId = resource.Id;
     ResourceGroupName = identifier.ResourceGroupName;
     Location = resource.Location;
     Tags = TagsConversionHelper.CreateTagHashtable(resource.Tags);
 }
コード例 #3
0
 public void IdentifierIsParsedFromLongId()
 {
     ResourceIdentifier id = new ResourceIdentifier("/subscriptions/abc123/resourceGroups/group1/providers/Microsoft.Test/servers/r12345sql/db/r45678db");
     Assert.Equal("abc123", id.Subscription);
     Assert.Equal("group1", id.ResourceGroupName);
     Assert.Equal("Microsoft.Test/servers/db", id.ResourceType);
     Assert.Equal("servers/r12345sql", id.ParentResource);
     Assert.Equal("r45678db", id.ResourceName);
 }
コード例 #4
0
 public PSVaultIdentityItem(ResourceManagement.GenericResourceExtended resource)
 {
     PSResourceManagerModels.ResourceIdentifier identifier = new PSResourceManagerModels.ResourceIdentifier(resource.Id);
     VaultName         = identifier.ResourceName;
     ResourceId        = resource.Id;
     ResourceGroupName = identifier.ResourceGroupName;
     Location          = resource.Location;
     Tags = TagsConversionHelper.CreateTagHashtable(resource.Tags);
 }
コード例 #5
0
        public void IdentifierIsConstructedWithoutParent()
        {
            ResourceIdentifier id = new ResourceIdentifier();
            id.Subscription = "abc123";
            id.ResourceGroupName = "group1";
            id.ResourceType = "Microsoft.Test/db";
            id.ResourceName = "r45678db";

            Assert.Equal("/subscriptions/abc123/resourceGroups/group1/providers/Microsoft.Test/db/r45678db", id.ToString());
        }
コード例 #6
0
        public void IdentifierIsConstructedFromProvidedValues()
        {
            ResourceIdentifier id = new ResourceIdentifier();
            id.Subscription = "abc123";
            id.ResourceGroupName = "group1";
            id.ResourceType = "Microsoft.Test/servers/db";
            id.ParentResource = "servers/r12345sql";
            id.ResourceName = "r45678db";

            Assert.Equal("/subscriptions/abc123/resourceGroups/group1/providers/Microsoft.Test/servers/r12345sql/db/r45678db", id.ToString());
        }
コード例 #7
0
        protected bool VaultExists(string name, string resourceGroupName)
        {
            //Get meta data using ResourceManagementClient to avoid having KV CP decrypt the vault
            var identifier = new PSResourceManagerModels.ResourceIdentifier()
            {
                ParentResource    = null,
                ResourceGroupName = resourceGroupName,
                ResourceName      = name,
                ResourceType      = this.KeyVaultManagementClient.VaultsResourceType
            }.ToResourceIdentity(this.KeyVaultManagementClient.ApiVersion);

            return(this.ResourcesClient.ResourceManagementClient.Resources.CheckExistence(resourceGroupName, identifier).Exists);
        }
コード例 #8
0
 public static PSResource ToPSResource(this Resource resource, ResourcesClient client)
 {
     ResourceIdentifier identifier = new ResourceIdentifier(resource.Id);
     return new PSResource
     {
         Name = identifier.ResourceName,
         Location = resource.Location,
         ResourceType = identifier.ResourceType,
         ResourceGroupName = identifier.ResourceGroupName,
         ParentResource = identifier.ParentResource,
         Properties = JsonUtilities.DeserializeJson(resource.Properties),
         PropertiesText = resource.Properties,
         Tags = TagsConversionHelper.CreateTagHashtable(resource.Tags)
     };
 }
コード例 #9
0
 public static PSResource ToPSResource(this GenericResourceExtended resource, ResourcesClient client, bool minimal)
 {
     ResourceIdentifier identifier = new ResourceIdentifier(resource.Id);
     return new PSResource
     {
         Name = identifier.ResourceName,
         Location = resource.Location,
         ResourceType = identifier.ResourceType,
         ResourceGroupName = identifier.ResourceGroupName,
         ParentResource = identifier.ParentResource,
         Properties = JsonUtilities.DeserializeJson(resource.Properties),
         PropertiesText = resource.Properties,
         Tags = TagsConversionHelper.CreateTagHashtable(resource.Tags),
         Permissions = minimal ? null : client.GetResourcePermissions(identifier),
         ResourceId = identifier.ToString()
     };
 }
コード例 #10
0
        protected string GetResourceGroupName(string vaultName)
        {
            string rg = null;
            var    resourcesByName = this.ResourcesClient.FilterResources(new PSResourceManagerModels.FilterResourcesOptions()
            {
                ResourceType = KeyVaultManagementClient.VaultsResourceType
            });

            if (resourcesByName != null && resourcesByName.Count > 0)
            {
                var vault = resourcesByName.FirstOrDefault(r => r.Name.Equals(vaultName, StringComparison.OrdinalIgnoreCase));
                if (vault != null)
                {
                    rg = new PSResourceManagerModels.ResourceIdentifier(vault.Id).ResourceGroupName;
                }
            }

            return(rg);
        }
コード例 #11
0
        protected string GetResourceGroupName(string vaultName)
        {
            string rg = null;
            var resourcesByName = this.ResourcesClient.FilterResources(new PSResourceManagerModels.FilterResourcesOptions()
                {
                    ResourceType = KeyVaultManagementClient.VaultsResourceType                     
                });

            if (resourcesByName != null && resourcesByName.Count > 0)            
            {
                var vault = resourcesByName.Where(r => r.Name == vaultName).FirstOrDefault();
                if (vault != null)                
                    rg = new PSResourceManagerModels.ResourceIdentifier(vault.Id).ResourceGroupName;                                                    
            }

            return rg;
        }
コード例 #12
0
        protected string GetResourceGroupName(string vaultName)
        {
            string rg = null;
            var resourcesByName = this.ResourcesClient.FilterResources(new PSResourceManagerModels.FilterResourcesOptions()
            {
                ResourceType = KeyVaultManagementClient.VaultsResourceType
            });

            if (resourcesByName != null && resourcesByName.Count > 0)
            {
                var vault = resourcesByName.FirstOrDefault(r => r.Name.Equals(vaultName, StringComparison.OrdinalIgnoreCase));
                if (vault != null)
                    rg = new PSResourceManagerModels.ResourceIdentifier(vault.Id).ResourceGroupName;
            }

            return rg;
        }
コード例 #13
0
        internal List<PSPermission> GetResourcePermissions(ResourceIdentifier identity)
        {
            PermissionGetResult permissionsResult = AuthorizationManagementClient.Permissions.ListForResource(
                    identity.ResourceGroupName,
                    identity.ToResourceIdentity());

            if (permissionsResult != null)
            {
                return permissionsResult.Permissions.Select(p => p.ToPSPermission()).ToList();
            }

            return null;
        }
コード例 #14
0
        public void IdentifierIsConstructedWithMissingParameters()
        {
            ResourceIdentifier id = new ResourceIdentifier();

            Assert.True(string.IsNullOrEmpty(id.ToString()));
        }
コード例 #15
0
        public void IdentifierParsedIsSkippedWithEmptyId()
        {
            ResourceIdentifier id = new ResourceIdentifier(null);
            Assert.Null(id.Subscription);
            Assert.Null(id.ResourceGroupName);
            Assert.Null(id.ResourceType);
            Assert.Null(id.ParentResource);
            Assert.Null(id.ResourceName);

            id = new ResourceIdentifier("");
            Assert.Null(id.Subscription);
            Assert.Null(id.ResourceGroupName);
            Assert.Null(id.ResourceType);
            Assert.Null(id.ParentResource);
            Assert.Null(id.ResourceName);
        }
コード例 #16
0
        protected bool VaultExists(string name, string resourceGroupName)
        {
            //Get meta data using ResourceManagementClient to avoid having KV CP decrypt the vault
            var identifier = new PSResourceManagerModels.ResourceIdentifier()
            {
                ParentResource = null,
                ResourceGroupName = resourceGroupName,
                ResourceName = name,
                ResourceType = this.KeyVaultManagementClient.VaultsResourceType
            }.ToResourceIdentity(this.KeyVaultManagementClient.ApiVersion);

            return this.ResourcesClient.ResourceManagementClient.Resources.CheckExistence(resourceGroupName, identifier).Exists;
        }
コード例 #17
0
 public static PSResource ToPSResource(this Resource resource, ResourcesClient client)
 {
     ResourceIdentifier identifier = new ResourceIdentifier(resource.Id);
     return new PSResource()
     {
         Name = identifier.ResourceName,
         Location = resource.Location,
         ResourceType = identifier.ResourceType,
         ResourceGroupName = identifier.ResourceGroupName,
         ParentResource = identifier.ParentResource,
         Properties = JsonUtilities.DeserializeJson(resource.Properties),
         PropertiesText = resource.Properties
     };
 }
コード例 #18
0
        public void IdentifierIsConstructedWithMissingParameters()
        {
            ResourceIdentifier id = new ResourceIdentifier();

            Assert.Equal("/subscriptions//resourceGroups//providers///", id.ToString());
        }