Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
</Description>
<RootNamespace>Azure.Storage</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Azure.Core" />
</ItemGroup>
<ItemGroup>
<Compile Include="$(AzureCoreSharedSources)NoBodyResponse{T}.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
<Compile Include="$(AzureCoreSharedSources)TaskExtensions.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
Expand Down
2 changes: 0 additions & 2 deletions sdk/storage/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@
<DefineConstants>DEBUG;$(DefineConstants)</DefineConstants>
</PropertyGroup>

<Import Condition="'$(IsClientLibrary)' == 'true' AND '$(IsMgmtClientLibrary)' != 'true'" Project="$(MSBuildThisFileDirectory)..\core\Azure.Core\src\Azure.Core.props" />

<!-- Add references for CLIENT LIBRARY projects -->
<ItemGroup Condition="'$(IsTestProject)' != 'true' and '$(IsClientLibrary)' == 'true'">
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@

namespace Microsoft.Azure.WebJobs.Extensions.Storage
{
/// <summary>
/// TODO.
/// </summary>
/// <inheritdoc cref="IWebJobsStartup"/>
public class AzureStorageBlobsWebJobsStartup : IWebJobsStartup
{
/// <inheritdoc/>
/// <inheritdoc />
public void Configure(IWebJobsBuilder builder)
{
builder.AddAzureStorageBlobs();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using Azure.Storage.Blobs.Specialized;
using Microsoft.Azure.WebJobs.Description;

namespace Microsoft.Azure.WebJobs
Expand All @@ -19,11 +20,11 @@ namespace Microsoft.Azure.WebJobs
/// <remarks>
/// The method parameter type can be one of the following:
/// <list type="bullet">
/// <item><description>ICloudBlob</description></item>
/// <item><description>CloudBlockBlob</description></item>
/// <item><description>CloudPageBlob</description></item>
/// <item><description><see cref="Stream"/> (read-only)</description></item>
/// <item><description>CloudBlobStream (write-only)</description></item>
/// <item><description><see cref="BlobBaseClient"/></description></item>
/// <item><description><see cref="AppendBlobClient"/></description></item>
/// <item><description><see cref="BlockBlobClient"/></description></item>
/// <item><description><see cref="PageBlobClient"/></description></item>
/// <item><description><see cref="Stream"/></description></item>
/// <item><description><see cref="TextReader"/></description></item>
/// <item><description><see cref="TextWriter"/></description></item>
/// <item><description>
Expand All @@ -39,12 +40,13 @@ namespace Microsoft.Azure.WebJobs
/// The parameter type can be CloudBlobContainer, CloudBlobDirectory or <see cref="IEnumerable{T}"/>
/// of one of the following element types:
/// <list type = "bullet" >
/// <item><description>ICloudBlob</description></item>
/// <item><description>CloudBlockBlob</description></item>
/// <item><description>CloudPageBlob</description></item>
/// <item><description>Stream</description></item>
/// <item><description>string</description></item>
/// <item><description>TextReader</description></item>
/// <item><description><see cref="BlobBaseClient"/></description></item>
/// <item><description><see cref="AppendBlobClient"/></description></item>
/// <item><description><see cref="BlockBlobClient"/></description></item>
/// <item><description><see cref="PageBlobClient"/></description></item>
/// <item><description><see cref="Stream"/></description></item>
/// <item><description><see cref="string"/></description></item>
/// <item><description><see cref="TextReader"/></description></item>
/// </list>
/// </remarks>
[SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments", Justification = "There is an accessor for FileAccess")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,6 @@ protected override ValidationResult IsValid(object value, ValidationContext vali
return null;
}

/// <summary>
/// TODO.
/// </summary>
/// <param name="containerName"></param>
/// <returns></returns>
internal static bool IsValidContainerName(string containerName)
{
if (containerName == null)
Expand All @@ -98,13 +93,6 @@ internal static bool IsValidContainerName(string containerName)
return Regex.IsMatch(containerName, @"^[a-z0-9](([a-z0-9\-[^\-])){1,61}[a-z0-9]$");
}

// See http://msdn.microsoft.com/en-us/library/windowsazure/dd135715.aspx.
/// <summary>
/// TODO.
/// </summary>
/// <param name="blobName"></param>
/// <param name="errorMessage"></param>
/// <returns></returns>
internal static bool IsValidBlobName(string blobName, out string errorMessage)
{
const string UnsafeCharactersMessage =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System;
using System.Diagnostics;
using System.IO;
using Azure.Storage.Blobs.Specialized;
using Microsoft.Azure.WebJobs.Description;

namespace Microsoft.Azure.WebJobs
Expand All @@ -17,17 +18,18 @@ namespace Microsoft.Azure.WebJobs
/// <remarks>
/// The method parameter type can be one of the following:
/// <list type="bullet">
/// <item><description>ICloudBlob</description></item>
/// <item><description>CloudBlockBlob</description></item>
/// <item><description>CloudPageBlob</description></item>
/// <item><description><see cref="BlobBaseClient"/></description></item>
/// <item><description><see cref="AppendBlobClient"/></description></item>
/// <item><description><see cref="BlockBlobClient"/></description></item>
/// <item><description><see cref="PageBlobClient"/></description></item>
/// <item><description><see cref="Stream"/></description></item>
/// <item><description><see cref="TextReader"/></description></item>
/// <item><description><see cref="string"/></description></item>
/// <item><description><see cref="T:byte[]"/></description></item>
/// </list>
/// </remarks>
[AttributeUsage(AttributeTargets.Parameter)]
#pragma warning restore CA1200 // Avoid using cref tags with a prefix
[AttributeUsage(AttributeTargets.Parameter)]
[DebuggerDisplay("{BlobPath,nq}")]
[ConnectionProvider(typeof(StorageAccountAttribute))]
[Binding]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,15 @@
namespace Microsoft.Extensions.Hosting
{
/// <summary>
/// TODO.
/// Extension methods for Storage Blobs integration.
/// </summary>
public static class StorageBlobsWebJobsBuilderExtensions
{
/// <summary>
/// TODO.
/// Adds the Storage Blobs extension to the provided <see cref="IWebJobsBuilder"/>.
/// </summary>
/// <param name="builder"></param>
/// <param name="configureBlobs"></param>
/// <returns></returns>
/// <param name="builder">The <see cref="IWebJobsBuilder"/> to configure.</param>
/// <param name="configureBlobs">Optional. An action to configure <see cref="BlobsOptions"/>.</param>
public static IWebJobsBuilder AddAzureStorageBlobs(this IWebJobsBuilder builder, Action<BlobsOptions> configureBlobs = null)
{
builder.Services.AddAzureClientsCore();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,6 @@ public QueueListener(QueueClient queue,
_sharedWatcher = sharedWatcher;
}

// TODO (kasobol-msft) remove this
//_queueProcessor = CreateQueueProcessor(_queue, _poisonQueue, loggerFactory, queueProcessorFactory, _queueOptions, _sharedWatcher);
_queueProcessor = queueProcessor;

TimeSpan maximumInterval = _queueProcessor.QueuesOptions.MaxPollingInterval;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@ internal protected QueueProcessor(QueueProcessorOptions queueProcessorOptions)
/// </summary>
public event EventHandler<PoisonMessageEventArgs> MessageAddedToPoisonQueue;

/// <summary>
/// TODO.
/// </summary>
internal QueuesOptions QueuesOptions { get; private set; }

/// <summary>
Expand Down Expand Up @@ -86,7 +83,7 @@ internal protected virtual async Task<bool> BeginProcessingMessageAsync(QueueMes
/// </remarks>
/// <param name="message">The message to complete processing for.</param>
/// <param name="result">The <see cref="FunctionResult"/> from the job invocation.</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use.</param>
/// <returns></returns>
internal protected virtual async Task CompleteProcessingMessageAsync(QueueMessage message, FunctionResult result, CancellationToken cancellationToken)
{
Expand Down Expand Up @@ -125,9 +122,9 @@ private async Task HandlePoisonMessageAsync(QueueMessage message, CancellationTo
/// <summary>
/// Moves the specified message to the poison queue.
/// </summary>
/// <param name="message">The poison message</param>
/// <param name="poisonQueue">The poison queue to copy the message to</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use</param>
/// <param name="message">The poison message.</param>
/// <param name="poisonQueue">The poison queue to copy the message to.</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use.</param>
/// <returns></returns>
protected virtual async Task CopyMessageToPoisonQueueAsync(QueueMessage message, QueueClient poisonQueue, CancellationToken cancellationToken)
{
Expand All @@ -145,8 +142,8 @@ protected virtual async Task CopyMessageToPoisonQueueAsync(QueueMessage message,
/// </summary>
/// <param name="message">The message to release</param>
/// <param name="result">The <see cref="FunctionResult"/> from the job invocation.</param>
/// <param name="visibilityTimeout">The visibility timeout to set for the message</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use</param>
/// <param name="visibilityTimeout">The visibility timeout to set for the message.</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use.</param>
/// <returns></returns>
protected virtual async Task ReleaseMessageAsync(QueueMessage message, FunctionResult result, TimeSpan visibilityTimeout, CancellationToken cancellationToken)
{
Expand Down Expand Up @@ -179,7 +176,7 @@ protected virtual async Task ReleaseMessageAsync(QueueMessage message, FunctionR
/// Delete the specified message.
/// </summary>
/// <param name="message">The message to delete.</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use</param>
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use.</param>
/// <returns></returns>
protected virtual async Task DeleteMessageAsync(QueueMessage message, CancellationToken cancellationToken)
{
Expand Down Expand Up @@ -217,9 +214,9 @@ protected virtual async Task DeleteMessageAsync(QueueMessage message, Cancellati
}

/// <summary>
/// Called to raise the MessageAddedToPoisonQueue event
/// Called to raise the MessageAddedToPoisonQueue event.
/// </summary>
/// <param name="e">The event arguments</param>
/// <param name="e">The event arguments.</param>
protected internal virtual void OnMessageAddedToPoisonQueue(PoisonMessageEventArgs e)
{
MessageAddedToPoisonQueue?.Invoke(this, e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ internal partial class QueueProcessorOptions
/// <summary>
/// Constructs a new instance.
/// </summary>
/// <param name="queue">TODO.</param>
/// <param name="queue">The queue the <see cref="QueueProcessor"/> will operate on.</param>
/// <param name="loggerFactory">The <see cref="ILoggerFactory"/> to create an <see cref="ILogger"/> from.</param>
/// <param name="options">The queue configuration.</param>
/// <param name="poisonQueue">The queue to move messages to when unable to process a message after the maximum dequeue count has been exceeded. May be null.</param>
Expand All @@ -33,13 +33,12 @@ internal QueueProcessorOptions(QueueClient queue, ILoggerFactory loggerFactory,
}

/// <summary>
/// TODO.
/// Gets the queue the <see cref="QueueProcessor"/> will operate on.
/// </summary>
public QueueClient Queue { get; private set; }

/// <summary>
/// TODO.
/// May be null.
/// Gets the queue to move messages to when unable to process a message after the maximum dequeue count has been exceeded. May be null.
/// </summary>
public QueueClient PoisonQueue { get; private set; }

Expand All @@ -49,7 +48,7 @@ internal QueueProcessorOptions(QueueClient queue, ILoggerFactory loggerFactory,
public ILogger Logger { get; private set; }

/// <summary>
/// TODO.
/// Gets the queue configuration.
/// </summary>
public QueuesOptions Options { get; private set; }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@

namespace Microsoft.Azure.WebJobs.Host
{
#if STORAGE_WEBJOBS_PUBLIC_QUEUE_PROCESSOR
/// <summary>
/// TODO.
/// Represents configuration for <see cref="QueueTriggerAttribute"/>.
/// </summary>
#if STORAGE_WEBJOBS_PUBLIC_QUEUE_PROCESSOR
public class QueuesOptions : IOptionsFormatter
#else
internal class QueuesOptions : IOptionsFormatter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,36 +24,19 @@ internal abstract class StorageClientProvider<TClient, TClientOptions> where TCl
private readonly AzureComponentFactory _componentFactory;
private readonly AzureEventSourceLogForwarder _logForwarder;

/// <summary>
/// TODO.
/// </summary>
/// <param name="configuration"></param>
/// <param name="componentFactory"></param>
/// <param name="logForwarder"></param>
public StorageClientProvider(IConfiguration configuration, AzureComponentFactory componentFactory, AzureEventSourceLogForwarder logForwarder)
{
_configuration = configuration;
_componentFactory = componentFactory;
_logForwarder = logForwarder;
}

/// <summary>
/// TODO.
/// </summary>
/// <param name="name"></param>
/// <param name="resolver"></param>
/// <returns></returns>
public virtual TClient Get(string name, INameResolver resolver)
{
var resolvedName = resolver.ResolveWholeString(name);
return this.Get(resolvedName);
}

/// <summary>
/// TODO.
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public virtual TClient Get(string name)
{
if (string.IsNullOrWhiteSpace(name))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@

namespace Microsoft.Azure.WebJobs.Extensions.Storage
{
/// <summary>
/// TODO.
/// </summary>
/// <inheritdoc cref="IWebJobsStartup"/>
public class AzureStorageQueuesWebJobsStartup : IWebJobsStartup
{
/// <inheritdoc/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

using System;
using System.Diagnostics;
using Azure.Storage.Queues;
using Azure.Storage.Queues.Models;
using Microsoft.Azure.WebJobs.Description;

namespace Microsoft.Azure.WebJobs
Expand All @@ -15,17 +17,17 @@ namespace Microsoft.Azure.WebJobs
/// <remarks>
/// The method parameter type can be one of the following:
/// <list type="bullet">
/// <item><description>CloudQueue</description></item>
/// <item><description>CloudQueueMessage (out parameter)</description></item>
/// <item><description><see cref="QueueClient"/></description></item>
/// <item><description><see cref="QueueMessage"/> (out parameter)</description></item>
/// <item><description><see cref="string"/> (out parameter)</description></item>
/// <item><description><see cref="T:byte[]"/> (out parameter)</description></item>
/// <item><description>A user-defined type (out parameter, serialized as JSON)</description></item>
/// <item><description><see cref="ICollector{T}"/> of these types (to enqueue multiple messages via <see cref="ICollector{T}.Add"/></description></item>
/// <item><description><see cref="IAsyncCollector{T}"/> of these types (to enqueue multiple messages via <see cref="IAsyncCollector{T}.AddAsync(T, System.Threading.CancellationToken)"/></description></item>
/// </list>
/// </remarks>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]
#pragma warning restore CA1200 // Avoid using cref tags with a prefix
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1813:AvoidUnsealedAttributes")]
[AttributeUsage(AttributeTargets.Parameter | AttributeTargets.ReturnValue)]
[DebuggerDisplay("{QueueName,nq}")]
[ConnectionProvider(typeof(StorageAccountAttribute))]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

using System;
using System.Diagnostics;
using Azure.Storage.Queues.Models;
using Microsoft.Azure.WebJobs.Description;

namespace Microsoft.Azure.WebJobs
Expand All @@ -16,7 +17,7 @@ namespace Microsoft.Azure.WebJobs
/// <remarks>
/// The method parameter type can be one of the following:
/// <list type="bullet">
/// <item><description>CloudQueueMessage</description></item>
/// <item><description><see cref="QueueMessage"/></description></item>
/// <item><description><see cref="string"/></description></item>
/// <item><description><see cref="T:byte[]"/></description></item>
/// <item><description>A user-defined type (serialized as JSON)</description></item>
Expand Down
Loading