Skip to content

Commit 8468bcd

Browse files
Merge pull request #4 from gaurangisaxena/makadiri/object
Makadiri/object
2 parents 96c8367 + 6495f20 commit 8468bcd

File tree

5 files changed

+71
-27
lines changed

5 files changed

+71
-27
lines changed

src/DataShare/DataShare/DataSet/NewAzDataShareDataSet.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@ public override void ExecuteCmdlet()
348348
StringComparison.OrdinalIgnoreCase))
349349
{
350350
storageAccountName = parsedStorageResourceId.GetAccountName();
351+
351352
if (this.ShouldProcess(this.Name, string.Format(Resources.ResourceCreateMessage, NewAzDataShareDataSet.ResourceType)))
352353
{
353354
if (this.FileName != null)

src/DataShare/DataShare/Synchronization/StartAzDataShareSynchronization.cs

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,17 @@ public class StartAzDataShareSynchronization : AzureDataShareCmdletBase
9898
[ValidateNotNullOrEmpty]
9999
public string ResourceId { get; set; }
100100

101+
/// <summary>
102+
/// Data share subscription object
103+
/// </summary>
104+
[Parameter(
105+
Mandatory = true,
106+
ParameterSetName = ParameterSetNames.ObjectParameterSet,
107+
ValueFromPipeline = true,
108+
HelpMessage = "Azure data share subscription object")]
109+
[ValidateNotNullOrEmpty]
110+
public PSDataShareSubscription InputObject { get; set; }
111+
101112
[Parameter]
102113
public SwitchParameter AsJob { get; set; }
103114

@@ -123,21 +134,33 @@ private void StartSynchronization()
123134
this.ShareSubscriptionName,
124135
new Synchronize(this.SynchronizationMode));
125136
this.WriteObject(synchronization.ToPsObject());
126-
} catch (DataShareErrorException ex)
137+
} catch (DataShareErrorException ex) when (ex.Response.StatusCode.Equals(HttpStatusCode.Conflict))
127138
{
128-
if (ex.Response.StatusCode.Equals(HttpStatusCode.Conflict)) {
129-
throw new PSArgumentException($"Synchronization already in progress.");
130-
}
139+
throw new PSArgumentException($"Synchronization already in progress.");
131140
}
132141
}
133142

134143
private void SetParametersIfNeeded()
135144
{
145+
string resourceId = null;
146+
136147
if (this.ParameterSetName.Equals(
137148
ParameterSetNames.ResourceIdParameterSet,
138149
StringComparison.OrdinalIgnoreCase))
139150
{
140-
var parsedResourceId = new ResourceIdentifier(this.ResourceId);
151+
resourceId = this.ResourceId;
152+
}
153+
154+
if (this.ParameterSetName.Equals(
155+
ParameterSetNames.ObjectParameterSet,
156+
StringComparison.OrdinalIgnoreCase))
157+
{
158+
resourceId = this.InputObject.Id;
159+
}
160+
161+
if (!string.IsNullOrEmpty(resourceId))
162+
{
163+
var parsedResourceId = new ResourceIdentifier(resourceId);
141164
this.ResourceGroupName = parsedResourceId.ResourceGroupName;
142165
this.AccountName = parsedResourceId.GetAccountName();
143166
this.ShareSubscriptionName = parsedResourceId.GetShareSubscriptionName();

src/DataShare/DataShare/Synchronization/StopAzDataShareSubscriptionSynchronization.cs

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,17 @@ public class StopAzDataShareSubscriptionSynchronization : AzureDataShareCmdletBa
9797
[ValidateNotNullOrEmpty]
9898
public string ResourceId { get; set; }
9999

100+
/// <summary>
101+
/// Data share subscription object
102+
/// </summary>
103+
[Parameter(
104+
Mandatory = true,
105+
ParameterSetName = ParameterSetNames.ObjectParameterSet,
106+
ValueFromPipeline = true,
107+
HelpMessage = "Azure data share subscription object")]
108+
[ValidateNotNullOrEmpty]
109+
public PSDataShareSubscription InputObject { get; set; }
110+
100111
[Parameter]
101112
public SwitchParameter AsJob { get; set; }
102113

@@ -130,24 +141,33 @@ private void StopSynchronization()
130141
shareSubscriptionSynchronization
131142
);
132143
this.WriteObject(synchronization.ToPsObject());
133-
} catch (DataShareErrorException ex)
144+
} catch (DataShareErrorException ex) when (ex.Response.StatusCode.Equals(HttpStatusCode.Conflict))
134145
{
135-
if (ex.Response.StatusCode.Equals(HttpStatusCode.Conflict)) {
136-
throw new PSArgumentException($"Synchronization already in progress.");
137-
} else
138-
{
139-
throw ex;
140-
}
146+
throw new PSArgumentException($"Synchronization already in progress.");
141147
}
142148
}
143149

144150
private void SetParametersIfNeeded()
145151
{
152+
string resourceId = null;
153+
146154
if (this.ParameterSetName.Equals(
147155
ParameterSetNames.ResourceIdParameterSet,
148156
StringComparison.OrdinalIgnoreCase))
149157
{
150-
var parsedResourceId = new ResourceIdentifier(this.ResourceId);
158+
resourceId = this.ResourceId;
159+
}
160+
161+
if (this.ParameterSetName.Equals(
162+
ParameterSetNames.ObjectParameterSet,
163+
StringComparison.OrdinalIgnoreCase))
164+
{
165+
resourceId = this.InputObject.Id;
166+
}
167+
168+
if (!string.IsNullOrEmpty(resourceId))
169+
{
170+
var parsedResourceId = new ResourceIdentifier(resourceId);
151171
this.ResourceGroupName = parsedResourceId.ResourceGroupName;
152172
this.AccountName = parsedResourceId.GetAccountName();
153173
this.ShareSubscriptionName = parsedResourceId.GetShareSubscriptionName();

src/DataShare/DataShare/SynchronizationSettings/GetAzDataShareSynchronizationSetting.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,10 @@ public override void ExecuteCmdlet()
131131
shareName: this.ShareName,
132132
synchronizationSettingName: this.Name) as ScheduledSynchronizationSetting;
133133
this.WriteObject(setting.ToPsObject());
134-
} catch (DataShareErrorException exception)
134+
} catch (DataShareErrorException exception) when (exception.Response.StatusCode.Equals(HttpStatusCode.NotFound))
135135
{
136-
if (exception.Response.StatusCode.Equals(HttpStatusCode.NotFound))
137-
{
138-
throw new PSArgumentException(
139-
$"Synchronization setting \"{this.Name}\" not found");
140-
}
136+
throw new PSArgumentException(
137+
$"Synchronization setting \"{this.Name}\" not found");
141138
}
142139
}
143140
}

src/DataShare/DataShare/SynchronizationSettings/RemoveAzureDataShareSynchronizationSetting.cs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,17 @@ public class RemoveAzureDataShareSynchronizationSetting : AzureDataShareCmdletBa
9595
[ValidateNotNullOrEmpty]
9696
public string ResourceId { get; set; }
9797

98+
/// <summary>
99+
/// Share synchronization setting object.
100+
/// </summary>
101+
[Parameter(
102+
Mandatory = true,
103+
ParameterSetName = ParameterSetNames.ObjectParameterSet,
104+
ValueFromPipeline = true,
105+
HelpMessage = "The Azure Data Share Synchronization setting.")]
106+
[ValidateNotNullOrEmpty]
107+
public PSDataShareSynchronizationSetting InputObject { get; set; }
108+
98109
/// <summary>
99110
/// Indicates whether you want to see deleted object or not
100111
/// </summary>
@@ -106,14 +117,6 @@ public class RemoveAzureDataShareSynchronizationSetting : AzureDataShareCmdletBa
106117
[Parameter]
107118
public SwitchParameter AsJob { get; set; }
108119

109-
[Parameter(
110-
Mandatory = true,
111-
ParameterSetName = ParameterSetNames.ObjectParameterSet,
112-
ValueFromPipeline = true,
113-
HelpMessage = "The Azure Data Share Synchronization setting.")]
114-
[ValidateNotNullOrEmpty]
115-
public PSDataShareSynchronizationSetting InputObject { get; set; }
116-
117120
public override void ExecuteCmdlet()
118121
{
119122
string resourceId = null;

0 commit comments

Comments
 (0)