Esempio n. 1
0
        internal string CreateAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName, DateTime?startTime, DateTime?expiryTime, string permission)
        {
            if (!NameUtil.IsValidStoredAccessPolicyName(policyName))
            {
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPolicyName, policyName));
            }

            //Get existing permissions
            CloudQueue       queue            = Channel.GetQueueReference(queueName);
            QueuePermissions queuePermissions = localChannel.GetPermissions(queue);

            //Add new policy
            if (queuePermissions.SharedAccessPolicies.Keys.Contains(policyName))
            {
                throw new ResourceAlreadyExistException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyAlreadyExists, policyName));
            }

            SharedAccessQueuePolicy policy = new SharedAccessQueuePolicy();

            AccessPolicyHelper.SetupAccessPolicy <SharedAccessQueuePolicy>(policy, startTime, expiryTime, permission);
            queuePermissions.SharedAccessPolicies.Add(policyName, policy);

            //Set permissions back to queue
            localChannel.SetPermissions(queue, queuePermissions);
            return(policyName);
        }
        internal async Task <SharedAccessQueuePolicies> GetPoliciesAsync(IStorageQueueManagement localChannel, string queueName, string policyName)
        {
            CloudQueue       queue            = localChannel.GetQueueReference(queueName);
            QueuePermissions queuePermissions = await localChannel.GetPermissionsAsync(queue).ConfigureAwait(false);

            return(queuePermissions.SharedAccessPolicies);
        }
        internal string CreateAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName, DateTime? startTime, DateTime? expiryTime, string permission)
        {

            if (!NameUtil.IsValidStoredAccessPolicyName(policyName))
            {
                throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, Resources.InvalidAccessPolicyName, policyName));
            }

            //Get existing permissions
            CloudQueue queue = Channel.GetQueueReference(queueName);
            QueuePermissions queuePermissions = localChannel.GetPermissions(queue);

            //Add new policy
            if (queuePermissions.SharedAccessPolicies.Keys.Contains(policyName))
            {
                throw new ResourceAlreadyExistException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyAlreadyExists, policyName));
            }

            SharedAccessQueuePolicy policy = new SharedAccessQueuePolicy();
            AccessPolicyHelper.SetupAccessPolicy<SharedAccessQueuePolicy>(policy, startTime, expiryTime, permission);
            queuePermissions.SharedAccessPolicies.Add(policyName, policy);

            //Set permissions back to queue
            localChannel.SetPermissions(queue, queuePermissions);
            return policyName;
        }
Esempio n. 4
0
        /// <summary>
        /// Validate the queue access policy
        /// </summary>
        /// <param name="policy">SharedAccessBlobPolicy object</param>
        /// <param name="policyIdentifier">The policy identifier which need to be checked.</param>
        public static bool ValidateQueueAccessPolicy(IStorageQueueManagement channel, string queueName,
                                                     SharedAccessQueuePolicy policy, string policyIdentifier)
        {
            if (string.IsNullOrEmpty(policyIdentifier))
            {
                return(true);
            }
            CloudQueue          queue      = channel.GetQueueReference(queueName);
            QueueRequestOptions options    = null;
            OperationContext    context    = null;
            QueuePermissions    permission = channel.GetPermissions(queue, options, context);

            SharedAccessQueuePolicy sharedAccessPolicy =
                GetExistingPolicy <SharedAccessQueuePolicy>(permission.SharedAccessPolicies, policyIdentifier);

            if (policy.Permissions != SharedAccessQueuePermissions.None)
            {
                throw new ArgumentException(Resources.SignedPermissionsMustBeOmitted);
            }

            if (policy.SharedAccessExpiryTime.HasValue && sharedAccessPolicy.SharedAccessExpiryTime.HasValue)
            {
                throw new ArgumentException(Resources.SignedExpiryTimeMustBeOmitted);
            }

            return(!sharedAccessPolicy.SharedAccessExpiryTime.HasValue);
        }
        internal string SetAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName, DateTime? startTime, DateTime? expiryTime, string permission, bool noStartTime, bool noExpiryTime)
        {
            //Get existing permissions
            CloudQueue queue = Channel.GetQueueReference(queueName);
            QueuePermissions queuePermissions = localChannel.GetPermissions(queue);

            //Set the policy with new value
            if (!queuePermissions.SharedAccessPolicies.Keys.Contains(policyName))
            {
                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName));
            }

            SharedAccessQueuePolicy policy = queuePermissions.SharedAccessPolicies[policyName];
            AccessPolicyHelper.SetupAccessPolicy<SharedAccessQueuePolicy>(policy, startTime, expiryTime, permission, noStartTime, noExpiryTime);
            queuePermissions.SharedAccessPolicies[policyName] = policy;

            //Set permission back to queue
            WriteObject(AccessPolicyHelper.ConstructPolicyOutputPSObject<SharedAccessQueuePolicy>(queuePermissions.SharedAccessPolicies, policyName));
            localChannel.SetPermissions(queue, queuePermissions);
            return policyName;
        }
        internal string SetAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName, DateTime?startTime, DateTime?expiryTime, string permission, bool noStartTime, bool noExpiryTime)
        {
            //Get existing permissions
            CloudQueue       queue            = Channel.GetQueueReference(queueName);
            QueuePermissions queuePermissions = localChannel.GetPermissions(queue);

            //Set the policy with new value
            if (!queuePermissions.SharedAccessPolicies.Keys.Contains(policyName))
            {
                throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName));
            }

            SharedAccessQueuePolicy policy = queuePermissions.SharedAccessPolicies[policyName];

            AccessPolicyHelper.SetupAccessPolicy <SharedAccessQueuePolicy>(policy, startTime, expiryTime, permission, noStartTime, noExpiryTime);
            queuePermissions.SharedAccessPolicies[policyName] = policy;

            //Set permission back to queue
            WriteObject(AccessPolicyHelper.ConstructPolicyOutputPSObject <SharedAccessQueuePolicy>(queuePermissions.SharedAccessPolicies, policyName));
            localChannel.SetPermissions(queue, queuePermissions);
            return(policyName);
        }
        internal async Task GetAzureQueueStoredAccessPolicyAsync(long taskId, IStorageQueueManagement localChannel, string queueName, string policyName)
        {
            SharedAccessQueuePolicies shareAccessPolicies = await GetPoliciesAsync(localChannel, queueName, policyName);

            if (!String.IsNullOrEmpty(policyName))
            {
                if (shareAccessPolicies.Keys.Contains(policyName))
                {
                    OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject<SharedAccessQueuePolicy>(shareAccessPolicies, policyName));
                }
                else
                {
                    throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName));
                }
            }
            else
            {
                foreach (string key in shareAccessPolicies.Keys)
                {
                    OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject<SharedAccessQueuePolicy>(shareAccessPolicies, key));
                }
            }
        }
        internal async Task GetAzureQueueStoredAccessPolicyAsync(long taskId, IStorageQueueManagement localChannel, string queueName, string policyName)
        {
            SharedAccessQueuePolicies shareAccessPolicies = await GetPoliciesAsync(localChannel, queueName, policyName).ConfigureAwait(false);

            if (!String.IsNullOrEmpty(policyName))
            {
                if (shareAccessPolicies.Keys.Contains(policyName))
                {
                    OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject <SharedAccessQueuePolicy>(shareAccessPolicies, policyName));
                }
                else
                {
                    throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName));
                }
            }
            else
            {
                foreach (string key in shareAccessPolicies.Keys)
                {
                    OutputStream.WriteObject(taskId, AccessPolicyHelper.ConstructPolicyOutputPSObject <SharedAccessQueuePolicy>(shareAccessPolicies, key));
                }
            }
        }
        internal bool RemoveAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName)
        {
            bool   success = false;
            string result  = string.Empty;

            //Get existing permissions
            CloudQueue       queue            = Channel.GetQueueReference(queueName);
            QueuePermissions queuePermissions = localChannel.GetPermissions(queue);

            //remove the specified policy
            if (!queuePermissions.SharedAccessPolicies.Keys.Contains(policyName))
            {
                throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName));
            }

            if (ShouldProcess(policyName, "Remove policy"))
            {
                queuePermissions.SharedAccessPolicies.Remove(policyName);
                localChannel.SetPermissions(queue, queuePermissions);
                success = true;
            }

            return(success);
        }
        internal bool RemoveAzureQueueStoredAccessPolicy(IStorageQueueManagement localChannel, string queueName, string policyName)
        {
            bool success = false;
            string result = string.Empty;

            //Get existing permissions
            CloudQueue queue = Channel.GetQueueReference(queueName);
            QueuePermissions queuePermissions = localChannel.GetPermissions(queue);

            //remove the specified policy
            if (!queuePermissions.SharedAccessPolicies.Keys.Contains(policyName))
            {
                throw new ResourceNotFoundException(String.Format(CultureInfo.CurrentCulture, Resources.PolicyNotFound, policyName));
            }

            if (ShouldProcess(policyName, "Remove policy"))
            {
                queuePermissions.SharedAccessPolicies.Remove(policyName);
                localChannel.SetPermissions(queue, queuePermissions);
                success = true;
            }

            return success;
        }
Esempio n. 11
0
 /// <summary>
 /// Initializes a new instance of the RemoveAzureStorageQueueCommand class.
 /// </summary>
 /// <param name="channel">IStorageQueueManagement channel</param>
 public RemoveAzureStorageQueueCommand(IStorageQueueManagement channel)
 {
     Channel = channel;
 }
 /// <summary>
 /// Initializes a new instance of the SetAzureStorageQueueStoredAccessPolicyCommand class.
 /// </summary>
 /// <param name="channel">IStorageBlobManagement channel</param>
 public SetAzureStorageQueueStoredAccessPolicyCommand(IStorageQueueManagement channel)
 {
     Channel           = channel;
     EnableMultiThread = false;
 }
 /// <summary>
 /// Initializes a new instance of the GetAzureStorageQueueStoredAccessPolicyCommand class.
 /// </summary>
 /// <param name="channel">IStorageBlobManagement channel</param>
 public GetAzureStorageQueueStoredAccessPolicyCommand(IStorageQueueManagement channel)
 {
     Channel = channel;
 }
 /// <summary>
 /// Initializes a new instance of the NewAzureStorageQueueCommand class.
 /// </summary>
 /// <param name="channel">IStorageQueueManagement channel</param>
 public NewAzureStorageQueueCommand(IStorageQueueManagement channel)
 {
     Channel = channel;
     EnableMultiThread = false;
 }
 /// <summary>
 /// Initializes a new instance of the NewAzureStorageQueueSasCommand class.
 /// </summary>
 /// <param name="channel">IStorageBlobManagement channel</param>
 public NewAzureStorageQueueSasTokenCommand(IStorageQueueManagement channel)
 {
     Channel           = channel;
     EnableMultiThread = false;
 }
 /// <summary>
 /// Initializes a new instance of the RemoveAzureStorageQueueCommand class.
 /// </summary>
 /// <param name="channel">IStorageQueueManagement channel</param>
 public RemoveAzureStorageQueueCommand(IStorageQueueManagement channel)
 {
     Channel           = channel;
     EnableMultiThread = false;
 }
 /// <summary>
 /// Initializes a new instance of the NewAzureStorageQueueCommand class.
 /// </summary>
 /// <param name="channel">IStorageQueueManagement channel</param>
 public NewAzureStorageQueueCommand(IStorageQueueManagement channel)
 {
     Channel = channel;
 }
 internal async Task<SharedAccessQueuePolicies> GetPoliciesAsync(IStorageQueueManagement localChannel, string queueName, string policyName)
 {
     CloudQueue queue = localChannel.GetQueueReference(queueName);
     QueuePermissions queuePermissions = await localChannel.GetPermissionsAsync(queue);
     return queuePermissions.SharedAccessPolicies;
 }
 public FakeRemoveAzureQueueCommand(IStorageQueueManagement channel)
 {
     Channel = channel;
 }
 /// <summary>
 /// Initializes a new instance of the SetAzureStorageQueueStoredAccessPolicyCommand class.
 /// </summary>
 /// <param name="channel">IStorageBlobManagement channel</param>
 public SetAzureStorageQueueStoredAccessPolicyCommand(IStorageQueueManagement channel)
 {
     Channel = channel;
     EnableMultiThread = false;
 }
 /// <summary>
 /// Initializes a new instance of the NewAzureStorageQueueSasCommand class.
 /// </summary>
 /// <param name="channel">IStorageBlobManagement channel</param>
 public NewAzureStorageQueueSasTokenCommand(IStorageQueueManagement channel)
 {
     Channel = channel;
 }
 /// <summary>
 /// Initializes a new instance of the GetAzureStorageQueueStoredAccessPolicyCommand class.
 /// </summary>
 /// <param name="channel">IStorageBlobManagement channel</param>
 public GetAzureStorageQueueStoredAccessPolicyCommand(IStorageQueueManagement channel)
 {
     Channel = channel;
 }