Skip to content

Commit a4d59c7

Browse files
authored
Updating api version and changing namespace commands to scheduler (#8362)
* Updating api version and changing namespace commands to scheduler Signed-off-by: Ryan Lettieri <ryanLettieri@microsoft.com> * Updating some docs and upgrading version Signed-off-by: Ryan Lettieri <ryanLettieri@microsoft.com> * Expanding sku into 2 separate arguments Signed-off-by: Ryan Lettieri <ryanLettieri@microsoft.com> --------- Signed-off-by: Ryan Lettieri <ryanLettieri@microsoft.com>
1 parent d157fbe commit a4d59c7

File tree

21 files changed

+665
-361
lines changed

21 files changed

+665
-361
lines changed

src/durabletask/HISTORY.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,9 @@ Release History
55

66
1.0.0b1
77
++++++
8-
* Initial release.
8+
* Initial release.
9+
10+
1.0.0b2
11+
++++++
12+
* Updating name of subresource from namespace to scheduler.
13+
* Adding support for tags in scheduler.

src/durabletask/README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,29 @@ Remove this extension using the following CLI command `az extension remove --nam
88

99
For more information on how to use this service, run the following CLI commands:
1010

11-
` az durabletask namespace -h `
11+
` az durabletask scheduler -h `
1212
` az durabletask taskhub -h `
1313

14-
You can create a namespace with the following command:
15-
` az durabletask namespace create -g "<resource-group-name>" -n "<namespace-name>"`
14+
You can create a scheduler with the following command:
15+
` az durabletask scheduler create -g "<resource-group-name>" -n "<scheduler-name>"`
1616

17-
List all the namespaces in your resource group:
18-
` az durabletask namespace list -g <resource-group-name> `
17+
List all the schedulers in your resource group:
18+
` az durabletask scheduler list -g <resource-group-name> `
1919

20-
Show the information for a particular namespace within a resource group:
21-
` az durabletask namespace show -g <resource-group-name> -n <namespace-name> `
20+
Show the information for a particular scheduler within a resource group:
21+
` az durabletask scheduler show -g <resource-group-name> -n <scheduler-name> `
2222

23-
Delete a namespace:
24-
` az durabletask namespace delete -g <resource-group-name> -n <namespace-name> `
23+
Delete a scheduler:
24+
` az durabletask scheduler delete -g <resource-group-name> -n <scheduler-name> `
2525

2626
You can create a taskhub with the following command:
27-
` az durabletask taskhub create -g <resource-group-name> -s <namespace-name> -n <taskhub-name> `
27+
` az durabletask taskhub create -g <resource-group-name> -s <scheduler-name> -n <taskhub-name> `
2828

29-
List all taskhubs within a particular namespace:
30-
` az durabletask taskhub list -g <resource-group-name> -n <namespace-name> `
29+
List all taskhubs within a particular scheduler:
30+
` az durabletask taskhub list -g <resource-group-name> -n <scheduler-name> `
3131

3232
Show information on a single taskhub:
33-
` az durabletask taskhub show -g <resource-group-name> -s <namespace-name> -n <task-hub-name> `
33+
` az durabletask taskhub show -g <resource-group-name> -s <scheduler-name> -n <task-hub-name> `
3434

3535
Delete a taskhub:
36-
` az durabletask taskhub delete -g <resource-group-name> -s <namespace-name> -n <task-hub-name> `
36+
` az durabletask taskhub delete -g <resource-group-name> -s <scheduler-name> -n <task-hub-name> `

src/durabletask/azext_durabletask/aaz/latest/durabletask/__cmd_group.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@
1313

1414
@register_command_group(
1515
"durabletask",
16-
is_preview=True,
1716
)
1817
class __CMDGroup(AAZCommandGroup):
19-
"""Commands to manage Durabletasks.
18+
"""Commands to manage Durabletask schedulers and taskhubs
2019
"""
2120
pass
2221

src/durabletask/azext_durabletask/aaz/latest/durabletask/namespace/__cmd_group.py renamed to src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/__cmd_group.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@
1212

1313

1414
@register_command_group(
15-
"durabletask namespace",
16-
is_preview=True,
15+
"durabletask scheduler",
1716
)
1817
class __CMDGroup(AAZCommandGroup):
19-
"""Commands to manage Durabletask namespaces
18+
"""Commands to manage Durabletask schedulers
2019
"""
2120
pass
2221

src/durabletask/azext_durabletask/aaz/latest/durabletask/namespace/__init__.py renamed to src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/__init__.py

File renamed without changes.

src/durabletask/azext_durabletask/aaz/latest/durabletask/namespace/_create.py renamed to src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_create.py

Lines changed: 54 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,19 @@
1212

1313

1414
@register_command(
15-
"durabletask namespace create",
16-
is_preview=True,
15+
"durabletask scheduler create",
1716
)
1817
class Create(AAZCommand):
19-
"""Create a Namespace
18+
"""Create a Scheduler
2019
21-
:example: Create a namespace in northcentralus
22-
az durabletask namespace create -g resource-group-name -n namespace-name --location northcentralus
20+
:example: Create a scheduler in northcentralus
21+
az durable-task scheduler create --resource-group testrg --scheduler-name testscheduler --location northcentralus --ip-allowlist "[0.0.0.0/0]" --sku-capacity "1", --sku-name "Dedicated" --tags "{}"
2322
"""
2423

2524
_aaz_info = {
26-
"version": "2024-02-01-preview",
25+
"version": "2024-10-01-preview",
2726
"resources": [
28-
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/namespaces/{}", "2024-02-01-preview"],
27+
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2024-10-01-preview"],
2928
]
3029
}
3130

@@ -46,26 +45,25 @@ def _build_arguments_schema(cls, *args, **kwargs):
4645
# define Arg Group ""
4746

4847
_args_schema = cls._args_schema
49-
_args_schema.namespace_name = AAZStrArg(
50-
options=["-n", "--name", "--namespace-name"],
51-
help="The name of the service",
48+
_args_schema.resource_group = AAZResourceGroupNameArg(
49+
required=True,
50+
)
51+
_args_schema.scheduler_name = AAZStrArg(
52+
options=["-n", "--name", "--scheduler-name"],
53+
help="The name of the Scheduler",
5254
required=True,
5355
fmt=AAZStrArgFormat(
5456
pattern="^[a-zA-Z0-9-]{3,64}$",
5557
),
5658
)
57-
_args_schema.resource_group = AAZResourceGroupNameArg(
58-
help="The name of the resource group",
59-
required=True,
60-
)
6159

6260
# define Arg Group "Properties"
6361

6462
_args_schema = cls._args_schema
6563
_args_schema.ip_allowlist = AAZListArg(
6664
options=["--ip-allowlist"],
6765
arg_group="Properties",
68-
help="IP allow list for durable task service. Values can be Pv4, IPv6 or CIDR",
66+
help="IP allow list for durable task scheduler. Values can be IPv4, IPv6 or CIDR",
6967
)
7068

7169
ip_allowlist = cls._args_schema.ip_allowlist
@@ -90,11 +88,25 @@ def _build_arguments_schema(cls, *args, **kwargs):
9088

9189
tags = cls._args_schema.tags
9290
tags.Element = AAZStrArg()
91+
92+
# define Arg Group "Sku"
93+
94+
_args_schema = cls._args_schema
95+
_args_schema.sku_capacity = AAZIntArg(
96+
options=["--sku-capacity"],
97+
arg_group="Sku",
98+
help="The SKU capacity. This allows scale out/in for the resource and impacts zone redundancy",
99+
)
100+
_args_schema.sku_name = AAZStrArg(
101+
options=["--sku-name"],
102+
arg_group="Sku",
103+
help="The name of the SKU",
104+
)
93105
return cls._args_schema
94106

95107
def _execute_operations(self):
96108
self.pre_operations()
97-
yield self.NamespacesCreateOrUpdate(ctx=self.ctx)()
109+
yield self.SchedulersCreateOrUpdate(ctx=self.ctx)()
98110
self.post_operations()
99111

100112
@register_callback
@@ -109,7 +121,7 @@ def _output(self, *args, **kwargs):
109121
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
110122
return result
111123

112-
class NamespacesCreateOrUpdate(AAZHttpOperation):
124+
class SchedulersCreateOrUpdate(AAZHttpOperation):
113125
CLIENT_TYPE = "MgmtClient"
114126

115127
def __call__(self, *args, **kwargs):
@@ -139,7 +151,7 @@ def __call__(self, *args, **kwargs):
139151
@property
140152
def url(self):
141153
return self.client.format_url(
142-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DurableTask/namespaces/{namespaceName}",
154+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DurableTask/schedulers/{schedulerName}",
143155
**self.url_parameters
144156
)
145157

@@ -155,11 +167,11 @@ def error_format(self):
155167
def url_parameters(self):
156168
parameters = {
157169
**self.serialize_url_param(
158-
"namespaceName", self.ctx.args.namespace_name,
170+
"resourceGroupName", self.ctx.args.resource_group,
159171
required=True,
160172
),
161173
**self.serialize_url_param(
162-
"resourceGroupName", self.ctx.args.resource_group,
174+
"schedulerName", self.ctx.args.scheduler_name,
163175
required=True,
164176
),
165177
**self.serialize_url_param(
@@ -173,7 +185,7 @@ def url_parameters(self):
173185
def query_parameters(self):
174186
parameters = {
175187
**self.serialize_query_param(
176-
"api-version", "2024-02-01-preview",
188+
"api-version", "2024-10-01-preview",
177189
required=True,
178190
),
179191
}
@@ -204,12 +216,18 @@ def content(self):
204216

205217
properties = _builder.get(".properties")
206218
if properties is not None:
207-
properties.set_prop("ipAllowlist", AAZListType, ".ip_allowlist")
219+
properties.set_prop("ipAllowlist", AAZListType, ".ip_allowlist", typ_kwargs={"flags": {"required": True}})
220+
properties.set_prop("sku", AAZObjectType, ".", typ_kwargs={"flags": {"required": True}})
208221

209222
ip_allowlist = _builder.get(".properties.ipAllowlist")
210223
if ip_allowlist is not None:
211224
ip_allowlist.set_elements(AAZStrType, ".")
212225

226+
sku = _builder.get(".properties.sku")
227+
if sku is not None:
228+
sku.set_prop("capacity", AAZIntType, ".sku_capacity")
229+
sku.set_prop("name", AAZStrType, ".sku_name", typ_kwargs={"flags": {"required": True}})
230+
213231
tags = _builder.get(".tags")
214232
if tags is not None:
215233
tags.set_elements(AAZStrType, ".")
@@ -254,24 +272,34 @@ def _build_schema_on_200_201(cls):
254272
)
255273

256274
properties = cls._schema_on_200_201.properties
257-
properties.dashboard_url = AAZStrType(
258-
serialized_name="dashboardUrl",
275+
properties.endpoint = AAZStrType(
259276
flags={"read_only": True},
260277
)
261278
properties.ip_allowlist = AAZListType(
262279
serialized_name="ipAllowlist",
280+
flags={"required": True},
263281
)
264282
properties.provisioning_state = AAZStrType(
265283
serialized_name="provisioningState",
266284
flags={"read_only": True},
267285
)
268-
properties.url = AAZStrType(
269-
flags={"read_only": True},
286+
properties.sku = AAZObjectType(
287+
flags={"required": True},
270288
)
271289

272290
ip_allowlist = cls._schema_on_200_201.properties.ip_allowlist
273291
ip_allowlist.Element = AAZStrType()
274292

293+
sku = cls._schema_on_200_201.properties.sku
294+
sku.capacity = AAZIntType()
295+
sku.name = AAZStrType(
296+
flags={"required": True},
297+
)
298+
sku.redundancy_state = AAZStrType(
299+
serialized_name="redundancyState",
300+
flags={"read_only": True},
301+
)
302+
275303
system_data = cls._schema_on_200_201.system_data
276304
system_data.created_at = AAZStrType(
277305
serialized_name="createdAt",

src/durabletask/azext_durabletask/aaz/latest/durabletask/namespace/_delete.py renamed to src/durabletask/azext_durabletask/aaz/latest/durabletask/scheduler/_delete.py

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,20 @@
1212

1313

1414
@register_command(
15-
"durabletask namespace delete",
16-
is_preview=True,
15+
"durabletask scheduler delete",
1716
confirmation="Are you sure you want to perform this operation?",
1817
)
1918
class Delete(AAZCommand):
20-
"""Delete a Namespace
19+
"""Delete a Scheduler
2120
22-
:example: Delete a namespace
23-
az durabletask namespace delete -g resource-group-name -n namespace-name
21+
:example: Delete a scheduler
22+
az durable-task scheduler delete --resource-group testrg --scheduler-name testscheduler
2423
"""
2524

2625
_aaz_info = {
27-
"version": "2024-02-01-preview",
26+
"version": "2024-10-01-preview",
2827
"resources": [
29-
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/namespaces/{}", "2024-02-01-preview"],
28+
["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.durabletask/schedulers/{}", "2024-10-01-preview"],
3029
]
3130
}
3231

@@ -47,24 +46,23 @@ def _build_arguments_schema(cls, *args, **kwargs):
4746
# define Arg Group ""
4847

4948
_args_schema = cls._args_schema
50-
_args_schema.namespace_name = AAZStrArg(
51-
options=["-n", "--name", "--namespace-name"],
52-
help="The name of the service",
49+
_args_schema.resource_group = AAZResourceGroupNameArg(
50+
required=True,
51+
)
52+
_args_schema.scheduler_name = AAZStrArg(
53+
options=["-n", "--name", "--scheduler-name"],
54+
help="The name of the Scheduler",
5355
required=True,
5456
id_part="name",
5557
fmt=AAZStrArgFormat(
5658
pattern="^[a-zA-Z0-9-]{3,64}$",
5759
),
5860
)
59-
_args_schema.resource_group = AAZResourceGroupNameArg(
60-
help="The name of the resource group",
61-
required=True,
62-
)
6361
return cls._args_schema
6462

6563
def _execute_operations(self):
6664
self.pre_operations()
67-
yield self.NamespacesDelete(ctx=self.ctx)()
65+
yield self.SchedulersDelete(ctx=self.ctx)()
6866
self.post_operations()
6967

7068
@register_callback
@@ -75,7 +73,7 @@ def pre_operations(self):
7573
def post_operations(self):
7674
pass
7775

78-
class NamespacesDelete(AAZHttpOperation):
76+
class SchedulersDelete(AAZHttpOperation):
7977
CLIENT_TYPE = "MgmtClient"
8078

8179
def __call__(self, *args, **kwargs):
@@ -114,7 +112,7 @@ def __call__(self, *args, **kwargs):
114112
@property
115113
def url(self):
116114
return self.client.format_url(
117-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DurableTask/namespaces/{namespaceName}",
115+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DurableTask/schedulers/{schedulerName}",
118116
**self.url_parameters
119117
)
120118

@@ -130,11 +128,11 @@ def error_format(self):
130128
def url_parameters(self):
131129
parameters = {
132130
**self.serialize_url_param(
133-
"namespaceName", self.ctx.args.namespace_name,
131+
"resourceGroupName", self.ctx.args.resource_group,
134132
required=True,
135133
),
136134
**self.serialize_url_param(
137-
"resourceGroupName", self.ctx.args.resource_group,
135+
"schedulerName", self.ctx.args.scheduler_name,
138136
required=True,
139137
),
140138
**self.serialize_url_param(
@@ -148,7 +146,7 @@ def url_parameters(self):
148146
def query_parameters(self):
149147
parameters = {
150148
**self.serialize_query_param(
151-
"api-version", "2024-02-01-preview",
149+
"api-version", "2024-10-01-preview",
152150
required=True,
153151
),
154152
}

0 commit comments

Comments
 (0)