Skip to content

Commit 38f037d

Browse files
author
Dongwei Wang
committed
Save current status
1 parent 914fa40 commit 38f037d

18 files changed

+688
-3
lines changed

src/Synapse/Synapse/Az.Synapse.psd1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,8 @@ CmdletsToExport = 'Get-AzSynapseSparkJob', 'Stop-AzSynapseSparkJob',
171171
'New-AzSynapseWorkspaceKey', 'Get-AzSynapseWorkspaceKey',
172172
'Remove-AzSynapseWorkspaceKey', 'Update-AzSynapseWorkspaceKey',
173173
'New-AzSynapseManagedVirtualNetworkConfig',
174-
'Update-AzSynapseManagedVirtualNetworkConfig'
174+
'Update-AzSynapseManagedVirtualNetworkConfig', 'Get-AzSynapseSqlScript',
175+
'Remove-AzSynapseSqlScript', 'Set-AzSynapseSqlScript'
175176

176177
# Variables to export from this module
177178
# VariablesToExport = @()

src/Synapse/Synapse/Commands/DataPlaneCommands/Artifact/Pipelines/RemoveAzureSynapsePipeline.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class RemoveAzureSynapsePipeline : SynapseArtifactsCmdletBase
1515
{
1616
private const string RemoveByName = "RemoveByName";
1717
private const string RemoveByObject = "RemoveByObject";
18-
private const string RemoveByInputObject = "NewByInputObject";
18+
private const string RemoveByInputObject = "RemoveByInputObject";
1919

2020
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = RemoveByName,
2121
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
2+
using Microsoft.Azure.Commands.Synapse.Common;
3+
using Microsoft.Azure.Commands.Synapse.Models;
4+
using Microsoft.WindowsAzure.Commands.Utilities.Common;
5+
using System.Linq;
6+
using System.Management.Automation;
7+
8+
namespace Microsoft.Azure.Commands.Synapse
9+
{
10+
[Cmdlet(VerbsCommon.Get, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.SparkJobDefinition,
11+
DefaultParameterSetName = GetByName)]
12+
[OutputType(typeof(PSSparkJobDefinitionResource))]
13+
public class GetAzureSynapseSparkJobDefinition : SynapseArtifactsCmdletBase
14+
{
15+
private const string GetByName = "GetByName";
16+
private const string GetByObject = "GetByObject";
17+
18+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = GetByName,
19+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
20+
[ResourceNameCompleter(ResourceTypes.Workspace, "ResourceGroupName")]
21+
[ValidateNotNullOrEmpty]
22+
public override string WorkspaceName { get; set; }
23+
24+
[Parameter(ValueFromPipeline = true, ParameterSetName = GetByObject,
25+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
26+
[ValidateNotNull]
27+
public PSSynapseWorkspace WorkspaceObject { get; set; }
28+
29+
[Parameter(ValueFromPipelineByPropertyName = false, Mandatory = false, HelpMessage = HelpMessages.SparkJobDefinitionName)]
30+
[ValidateNotNullOrEmpty]
31+
[Alias("SparkJobDefinitionName")]
32+
public string Name { get; set; }
33+
34+
public override void ExecuteCmdlet()
35+
{
36+
if (this.IsParameterBound(c => c.WorkspaceObject))
37+
{
38+
this.WorkspaceName = this.WorkspaceObject.Name;
39+
}
40+
41+
if (this.IsParameterBound(c => c.Name))
42+
{
43+
WriteObject(new PSSparkJobDefinitionResource(SynapseAnalyticsClient.GetSparkJobDefinition(this.Name)));
44+
}
45+
else
46+
{
47+
var pipeline = SynapseAnalyticsClient.GetSparkJobDefinitionsByWorkspace()
48+
.Select(element => new PSSparkJobDefinitionResource(element));
49+
WriteObject(pipeline, true);
50+
}
51+
}
52+
}
53+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
2+
using Microsoft.Azure.Commands.Synapse.Common;
3+
using Microsoft.Azure.Commands.Synapse.Models;
4+
using Microsoft.Azure.Commands.Synapse.Properties;
5+
using Microsoft.Azure.Management.Internal.Resources.Utilities.Models;
6+
using Microsoft.WindowsAzure.Commands.Utilities.Common;
7+
using System.Management.Automation;
8+
9+
namespace Microsoft.Azure.Commands.Synapse
10+
{
11+
[Cmdlet(VerbsCommon.Remove, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.SparkJobDefinition,
12+
DefaultParameterSetName = RemoveByName, SupportsShouldProcess = true)]
13+
[OutputType(typeof(bool))]
14+
public class RemoveAzureSynapseSparkJobDefinition : SynapseArtifactsCmdletBase
15+
{
16+
private const string RemoveByName = "RemoveByName";
17+
private const string RemoveByObject = "RemoveByObject";
18+
private const string RemoveByInputObject = "RemoveByInputObject";
19+
20+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = RemoveByName,
21+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
22+
[ResourceNameCompleter(ResourceTypes.Workspace, "ResourceGroupName")]
23+
[ValidateNotNullOrEmpty]
24+
public override string WorkspaceName { get; set; }
25+
26+
[Parameter(ValueFromPipeline = true, ParameterSetName = RemoveByObject,
27+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
28+
[ValidateNotNull]
29+
public PSSynapseWorkspace WorkspaceObject { get; set; }
30+
31+
[Parameter(ValueFromPipelineByPropertyName = false, Mandatory = true, HelpMessage = HelpMessages.SparkJobDefinitionName)]
32+
[ValidateNotNullOrEmpty]
33+
[Alias("SparkJobDefinitionName")]
34+
public string Name { get; set; }
35+
36+
[Parameter(ValueFromPipeline = true, ParameterSetName = RemoveByInputObject,
37+
Mandatory = true, HelpMessage = HelpMessages.SparkJobDefinitionObject)]
38+
[ValidateNotNull]
39+
public PSSparkJobDefinitionResource InputObject { get; set; }
40+
41+
[Parameter(Mandatory = false, HelpMessage = HelpMessages.PassThru)]
42+
public SwitchParameter PassThru { get; set; }
43+
44+
[Parameter(Mandatory = false, HelpMessage = HelpMessages.AsJob)]
45+
public SwitchParameter AsJob { get; set; }
46+
47+
[Parameter(Mandatory = false, HelpMessage = HelpMessages.Force)]
48+
public SwitchParameter Force { get; set; }
49+
50+
public override void ExecuteCmdlet()
51+
{
52+
if (this.IsParameterBound(c => c.WorkspaceObject))
53+
{
54+
this.WorkspaceName = this.WorkspaceObject.Name;
55+
}
56+
57+
if (this.IsParameterBound(c => c.InputObject))
58+
{
59+
var resourceIdentifier = new ResourceIdentifier(this.InputObject.Id);
60+
this.WorkspaceName = resourceIdentifier.ParentResource;
61+
this.WorkspaceName = this.WorkspaceName.Substring(this.WorkspaceName.LastIndexOf('/') + 1);
62+
this.Name = resourceIdentifier.ResourceName;
63+
}
64+
65+
ConfirmAction(
66+
Force.IsPresent,
67+
string.Format(Resources.RemoveSynapseSparkJobDefinition, Name),
68+
string.Format(Resources.RemovingSynapseSparkJobDefinition, this.Name, this.WorkspaceName),
69+
Name,
70+
() =>
71+
{
72+
SynapseAnalyticsClient.DeleteSparkJobDefinition(this.Name);
73+
if (PassThru)
74+
{
75+
WriteObject(true);
76+
}
77+
});
78+
}
79+
}
80+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
using Azure.Analytics.Synapse.Artifacts.Models;
2+
using Microsoft.Azure.Commands.Common.Exceptions;
3+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
4+
using Microsoft.Azure.Commands.Synapse.Common;
5+
using Microsoft.Azure.Commands.Synapse.Models;
6+
using Microsoft.Azure.Commands.Synapse.Properties;
7+
using Microsoft.WindowsAzure.Commands.Utilities.Common;
8+
using System;
9+
using System.Management.Automation;
10+
11+
namespace Microsoft.Azure.Commands.Synapse
12+
{
13+
[Cmdlet(VerbsCommon.Set, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.SqlScript,
14+
DefaultParameterSetName = SetByName, SupportsShouldProcess = true)]
15+
[Alias("New-" + ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.SqlScript)]
16+
[OutputType(typeof(PSSqlScriptResource))]
17+
public class SetAzureSynapseSqlScript : SynapseArtifactsCmdletBase
18+
{
19+
private const string SetByName = "SetByName";
20+
private const string SetByObject = "SetByObject";
21+
private const string RenameByName = "RenameByName";
22+
private const string RenameByObject = "RenameByObject";
23+
24+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = SetByName,
25+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
26+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = RenameByName,
27+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
28+
[ResourceNameCompleter(ResourceTypes.Workspace, "ResourceGroupName")]
29+
[ValidateNotNullOrEmpty]
30+
public override string WorkspaceName { get; set; }
31+
32+
[Parameter(ValueFromPipeline = true, ParameterSetName = SetByObject,
33+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
34+
[Parameter(ValueFromPipeline = true, ParameterSetName = RenameByObject,
35+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
36+
[ValidateNotNull]
37+
public PSSynapseWorkspace WorkspaceObject { get; set; }
38+
39+
[Parameter(ValueFromPipelineByPropertyName = false, Mandatory = true, HelpMessage = HelpMessages.SqlScriptName)]
40+
[ValidateNotNullOrEmpty]
41+
[Alias("SqlScriptName")]
42+
public string Name { get; set; }
43+
44+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = RenameByName,
45+
Mandatory = true, HelpMessage = HelpMessages.SqlScriptName)]
46+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = RenameByObject,
47+
Mandatory = true, HelpMessage = HelpMessages.SqlScriptName)]
48+
[ValidateNotNullOrEmpty]
49+
public string NewName { get; set; }
50+
51+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = SetByName,
52+
Mandatory = true, HelpMessage = HelpMessages.ScriptFilePath)]
53+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = SetByObject,
54+
Mandatory = true, HelpMessage = HelpMessages.ScriptFilePath)]
55+
[ValidateNotNullOrEmpty]
56+
[Alias("File")]
57+
public string ScriptFile { get; set; }
58+
59+
[Parameter(Mandatory = false, HelpMessage = HelpMessages.AsJob)]
60+
public SwitchParameter AsJob { get; set; }
61+
62+
public override void ExecuteCmdlet()
63+
{
64+
if (this.IsParameterBound(c => c.WorkspaceObject))
65+
{
66+
this.WorkspaceName = this.WorkspaceObject.Name;
67+
}
68+
69+
if (this.ShouldProcess(this.WorkspaceName, String.Format(Resources.SettingSynapseSqlScript, this.Name, this.WorkspaceName)))
70+
{
71+
switch (ParameterSetName)
72+
{
73+
case SetByName:
74+
case SetByObject:
75+
string query = this.ReadFileAsText(this.TryResolvePath(ScriptFile));
76+
SqlConnection connection = new SqlConnection(SqlConnectionType.SqlPool, )
77+
SqlScriptContent sqlScriptContent = new SqlScriptContent(query, connection)
78+
{
79+
Metadata = new SqlScriptMetadata
80+
{
81+
Language = "sql"
82+
}
83+
};
84+
SqlScript script = new SqlScript(content);
85+
SqlScriptResource sqlScript = new SqlScriptResource(this.Name, new SqlScript)
86+
{
87+
88+
}
89+
WriteObject(new PSSqlScriptResource(SynapseAnalyticsClient.CreateOrUpdateSqlScript(this.Name, rawJsonContent)));
90+
break;
91+
92+
case RenameByName:
93+
case RenameByObject:
94+
SynapseAnalyticsClient.RenameSqlScript(this.Name, this.NewName);
95+
WriteObject(new PSSqlScriptResource(SynapseAnalyticsClient.GetSqlScript(this.Name)));
96+
break;
97+
98+
default: throw new AzPSInvalidOperationException(string.Format(Resources.InvalidParameterSet, this.ParameterSetName));
99+
}
100+
}
101+
}
102+
}
103+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
2+
using Microsoft.Azure.Commands.Synapse.Common;
3+
using Microsoft.Azure.Commands.Synapse.Models;
4+
using Microsoft.WindowsAzure.Commands.Utilities.Common;
5+
using System.Linq;
6+
using System.Management.Automation;
7+
8+
namespace Microsoft.Azure.Commands.Synapse
9+
{
10+
[Cmdlet(VerbsCommon.Get, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.SqlScript,
11+
DefaultParameterSetName = GetByName)]
12+
[OutputType(typeof(PSSqlScriptResource))]
13+
public class GetAzureSynapseSqlScript : SynapseArtifactsCmdletBase
14+
{
15+
private const string GetByName = "GetByName";
16+
private const string GetByObject = "GetByObject";
17+
18+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = GetByName,
19+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
20+
[ResourceNameCompleter(ResourceTypes.Workspace, "ResourceGroupName")]
21+
[ValidateNotNullOrEmpty]
22+
public override string WorkspaceName { get; set; }
23+
24+
[Parameter(ValueFromPipeline = true, ParameterSetName = GetByObject,
25+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
26+
[ValidateNotNull]
27+
public PSSynapseWorkspace WorkspaceObject { get; set; }
28+
29+
[Parameter(ValueFromPipelineByPropertyName = false, Mandatory = false, HelpMessage = HelpMessages.SqlScriptName)]
30+
[ValidateNotNullOrEmpty]
31+
[Alias("SqlScriptName")]
32+
public string Name { get; set; }
33+
34+
public override void ExecuteCmdlet()
35+
{
36+
if (this.IsParameterBound(c => c.WorkspaceObject))
37+
{
38+
this.WorkspaceName = this.WorkspaceObject.Name;
39+
}
40+
41+
if (this.IsParameterBound(c => c.Name))
42+
{
43+
WriteObject(new PSSqlScriptResource(SynapseAnalyticsClient.GetSqlScript(this.Name)));
44+
}
45+
else
46+
{
47+
var pipeline = SynapseAnalyticsClient.GetSqlScriptsByWorkspace()
48+
.Select(element => new PSSqlScriptResource(element));
49+
WriteObject(pipeline, true);
50+
}
51+
}
52+
}
53+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
using Microsoft.Azure.Commands.ResourceManager.Common.ArgumentCompleters;
2+
using Microsoft.Azure.Commands.Synapse.Common;
3+
using Microsoft.Azure.Commands.Synapse.Models;
4+
using Microsoft.Azure.Commands.Synapse.Properties;
5+
using Microsoft.Azure.Management.Internal.Resources.Utilities.Models;
6+
using Microsoft.WindowsAzure.Commands.Utilities.Common;
7+
using System;
8+
using System.Management.Automation;
9+
10+
namespace Microsoft.Azure.Commands.Synapse
11+
{
12+
[Cmdlet(VerbsCommon.Remove, ResourceManager.Common.AzureRMConstants.AzureRMPrefix + SynapseConstants.SynapsePrefix + SynapseConstants.SqlScript,
13+
DefaultParameterSetName = RemoveByName, SupportsShouldProcess = true)]
14+
[OutputType(typeof(bool))]
15+
public class RemoveAzureSynapseSqlScript : SynapseArtifactsCmdletBase
16+
{
17+
private const string RemoveByName = "RemoveByName";
18+
private const string RemoveByObject = "RemoveByObject";
19+
private const string RemoveByInputObject = "NewByInputObject";
20+
21+
[Parameter(ValueFromPipelineByPropertyName = false, ParameterSetName = RemoveByName,
22+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
23+
[ResourceNameCompleter(ResourceTypes.Workspace, "ResourceGroupName")]
24+
[ValidateNotNullOrEmpty]
25+
public override string WorkspaceName { get; set; }
26+
27+
[Parameter(ValueFromPipeline = true, ParameterSetName = RemoveByObject,
28+
Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
29+
[ValidateNotNull]
30+
public PSSynapseWorkspace WorkspaceObject { get; set; }
31+
32+
[Parameter(ValueFromPipelineByPropertyName = false, Mandatory = true, HelpMessage = HelpMessages.SqlScriptName)]
33+
[ValidateNotNullOrEmpty]
34+
[Alias("SqlScriptName")]
35+
public string Name { get; set; }
36+
37+
[Parameter(ValueFromPipeline = true, ParameterSetName = RemoveByInputObject,
38+
Mandatory = true, HelpMessage = HelpMessages.SqlScriptObject)]
39+
[ValidateNotNull]
40+
public PSSqlScriptResource InputObject { get; set; }
41+
42+
[Parameter(Mandatory = false, HelpMessage = HelpMessages.PassThru)]
43+
public SwitchParameter PassThru { get; set; }
44+
45+
[Parameter(Mandatory = false, HelpMessage = HelpMessages.AsJob)]
46+
public SwitchParameter AsJob { get; set; }
47+
48+
[Parameter(Mandatory = false, HelpMessage = HelpMessages.Force)]
49+
public SwitchParameter Force { get; set; }
50+
51+
public override void ExecuteCmdlet()
52+
{
53+
if (this.IsParameterBound(c => c.WorkspaceObject))
54+
{
55+
this.WorkspaceName = this.WorkspaceObject.Name;
56+
}
57+
58+
if (this.IsParameterBound(c => c.InputObject))
59+
{
60+
var resourceIdentifier = new ResourceIdentifier(this.InputObject.Id);
61+
this.WorkspaceName = resourceIdentifier.ParentResource;
62+
this.WorkspaceName = this.WorkspaceName.Substring(this.WorkspaceName.LastIndexOf('/') + 1);
63+
this.Name = resourceIdentifier.ResourceName;
64+
}
65+
66+
ConfirmAction(
67+
Force.IsPresent,
68+
string.Format(Resources.RemoveSynapseSqlScript, Name),
69+
string.Format(Resources.RemovingSynapseSqlScript, this.Name, this.WorkspaceName),
70+
Name,
71+
() =>
72+
{
73+
SynapseAnalyticsClient.DeleteSqlScript(this.Name);
74+
if (PassThru)
75+
{
76+
WriteObject(true);
77+
}
78+
});
79+
}
80+
}
81+
}

0 commit comments

Comments
 (0)