Skip to content

Commit

Permalink
NSP link and link reference (#6171)
Browse files Browse the repository at this point in the history
* NSP link and link reference

* Update

* perimeter name argument update

* Add link and link reference tests

* Add test cases

* Linter fix

* Update test cases and examples

* Update

* Update

* recording update

* remove random string generator

* Update version for release

* Update history

---------

Co-authored-by: Kaushal Kumar <kumarkaushal@microsoft.com>
  • Loading branch information
kaushal087 and Kaushal Kumar authored Apr 12, 2023
1 parent 3717b98 commit a91ec6b
Show file tree
Hide file tree
Showing 45 changed files with 4,473 additions and 491 deletions.
19 changes: 17 additions & 2 deletions src/nsp/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,22 @@
Release History
===============
===============
##### 0.2.0
++++++
New commands added:
* perimeter link: create, delete, list, show, update
* perimeter link-reference: delete, list, show

0.1.0
Existing commands updated:
* perimeter profile access-rule: create, delete, list, show, update (introduced new keys [--phone-numbers, --email-addresses] in request and response. Now access rule supports email/sms based outbound connections.

===============
##### 0.1.0
++++++
* Initial release.
New commands added:
* perimeter: create, delete, list, show
* perimeter profile: create, delete, list, show
* perimeter association: create, delete, list, show, update
* perimeter profile access-rule: create, delete, list, show, update
* perimeter onboarded-resources: list
15 changes: 14 additions & 1 deletion src/nsp/azext_nsp/aaz/latest/network/perimeter/_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ def _build_arguments_schema(cls, *args, **kwargs):
options=["-n", "--name", "--perimeter-name"],
help="The name of the network security perimeter.",
required=True,
id_part="name",
)
_args_schema.resource_group = AAZResourceGroupNameArg(
required=True,
Expand All @@ -75,7 +74,17 @@ def _build_arguments_schema(cls, *args, **kwargs):
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
self.NetworkSecurityPerimetersCreateOrUpdate(ctx=self.ctx)()
self.post_operations()

@register_callback
def pre_operations(self):
pass

@register_callback
def post_operations(self):
pass

def _output(self, *args, **kwargs):
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
Expand Down Expand Up @@ -209,4 +218,8 @@ def _build_schema_on_200_201(cls):
return cls._schema_on_200_201


class _CreateHelper:
"""Helper class for Create"""


__all__ = ["Create"]
14 changes: 14 additions & 0 deletions src/nsp/azext_nsp/aaz/latest/network/perimeter/_delete.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,17 @@ def _build_arguments_schema(cls, *args, **kwargs):
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
self.NetworkSecurityPerimetersDelete(ctx=self.ctx)()
self.post_operations()

@register_callback
def pre_operations(self):
pass

@register_callback
def post_operations(self):
pass

class NetworkSecurityPerimetersDelete(AAZHttpOperation):
CLIENT_TYPE = "MgmtClient"
Expand Down Expand Up @@ -122,4 +132,8 @@ def on_204(self, session):
pass


class _DeleteHelper:
"""Helper class for Delete"""


__all__ = ["Delete"]
14 changes: 14 additions & 0 deletions src/nsp/azext_nsp/aaz/latest/network/perimeter/_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,22 @@ def _build_arguments_schema(cls, *args, **kwargs):
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
condition_0 = has_value(self.ctx.args.resource_group) and has_value(self.ctx.subscription_id)
condition_1 = has_value(self.ctx.subscription_id) and has_value(self.ctx.args.resource_group) is not True
if condition_0:
self.NetworkSecurityPerimetersList(ctx=self.ctx)()
if condition_1:
self.NetworkSecurityPerimetersListBySubscription(ctx=self.ctx)()
self.post_operations()

@register_callback
def pre_operations(self):
pass

@register_callback
def post_operations(self):
pass

def _output(self, *args, **kwargs):
result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True)
Expand Down Expand Up @@ -305,4 +315,8 @@ def _build_schema_on_200(cls):
return cls._schema_on_200


class _ListHelper:
"""Helper class for List"""


__all__ = ["List"]
14 changes: 14 additions & 0 deletions src/nsp/azext_nsp/aaz/latest/network/perimeter/_show.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,17 @@ def _build_arguments_schema(cls, *args, **kwargs):
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
self.NetworkSecurityPerimetersGet(ctx=self.ctx)()
self.post_operations()

@register_callback
def pre_operations(self):
pass

@register_callback
def post_operations(self):
pass

def _output(self, *args, **kwargs):
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
Expand Down Expand Up @@ -170,4 +180,8 @@ def _build_schema_on_200(cls):
return cls._schema_on_200


class _ShowHelper:
"""Helper class for Show"""


__all__ = ["Show"]
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,11 @@ def _build_arguments_schema(cls, *args, **kwargs):
options=["-n", "--name", "--association-name"],
help="The name of the NSP association.",
required=True,
id_part="child_name_1",
)
_args_schema.perimeter_name = AAZStrArg(
options=["--perimeter-name"],
help="The name of the network security perimeter.",
required=True,
id_part="name",
)
_args_schema.resource_group = AAZResourceGroupNameArg(
required=True,
Expand Down Expand Up @@ -121,7 +119,17 @@ def _build_args_sub_resource_create(cls, _schema):
_schema.id = cls._args_sub_resource_create.id

def _execute_operations(self):
self.pre_operations()
self.NspAssociationsCreateOrUpdate(ctx=self.ctx)()
self.post_operations()

@register_callback
def pre_operations(self):
pass

@register_callback
def post_operations(self):
pass

def _output(self, *args, **kwargs):
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
Expand Down Expand Up @@ -212,8 +220,8 @@ def content(self):
properties = _builder.get(".properties")
if properties is not None:
properties.set_prop("accessMode", AAZStrType, ".access_mode")
_build_schema_sub_resource_create(properties.set_prop("privateLinkResource", AAZObjectType, ".private_link_resource"))
_build_schema_sub_resource_create(properties.set_prop("profile", AAZObjectType, ".profile"))
_CreateHelper._build_schema_sub_resource_create(properties.set_prop("privateLinkResource", AAZObjectType, ".private_link_resource"))
_CreateHelper._build_schema_sub_resource_create(properties.set_prop("profile", AAZObjectType, ".profile"))

tags = _builder.get(".tags")
if tags is not None:
Expand Down Expand Up @@ -261,9 +269,9 @@ def _build_schema_on_200_201(cls):
properties.private_link_resource = AAZObjectType(
serialized_name="privateLinkResource",
)
_build_schema_sub_resource_read(properties.private_link_resource)
_CreateHelper._build_schema_sub_resource_read(properties.private_link_resource)
properties.profile = AAZObjectType()
_build_schema_sub_resource_read(properties.profile)
_CreateHelper._build_schema_sub_resource_read(properties.profile)
properties.provisioning_state = AAZStrType(
serialized_name="provisioningState",
flags={"read_only": True},
Expand All @@ -275,27 +283,29 @@ def _build_schema_on_200_201(cls):
return cls._schema_on_200_201


def _build_schema_sub_resource_create(_builder):
if _builder is None:
return
_builder.set_prop("id", AAZStrType, ".id")
class _CreateHelper:
"""Helper class for Create"""

@classmethod
def _build_schema_sub_resource_create(cls, _builder):
if _builder is None:
return
_builder.set_prop("id", AAZStrType, ".id")

_schema_sub_resource_read = None

_schema_sub_resource_read = None

def _build_schema_sub_resource_read(_schema):
global _schema_sub_resource_read
if _schema_sub_resource_read is not None:
_schema.id = _schema_sub_resource_read.id
return
@classmethod
def _build_schema_sub_resource_read(cls, _schema):
if cls._schema_sub_resource_read is not None:
_schema.id = cls._schema_sub_resource_read.id
return

_schema_sub_resource_read = AAZObjectType()
cls._schema_sub_resource_read = _schema_sub_resource_read = AAZObjectType()

sub_resource_read = _schema_sub_resource_read
sub_resource_read.id = AAZStrType()
sub_resource_read = _schema_sub_resource_read
sub_resource_read.id = AAZStrType()

_schema.id = _schema_sub_resource_read.id
_schema.id = cls._schema_sub_resource_read.id


__all__ = ["Create"]
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,17 @@ def _build_arguments_schema(cls, *args, **kwargs):
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
yield self.NspAssociationsDelete(ctx=self.ctx)()
self.post_operations()

@register_callback
def pre_operations(self):
pass

@register_callback
def post_operations(self):
pass

class NspAssociationsDelete(AAZHttpOperation):
CLIENT_TYPE = "MgmtClient"
Expand Down Expand Up @@ -156,4 +166,8 @@ def on_204(self, session):
pass


class _DeleteHelper:
"""Helper class for Delete"""


__all__ = ["Delete"]
36 changes: 24 additions & 12 deletions src/nsp/azext_nsp/aaz/latest/network/perimeter/association/_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,17 @@ def _build_arguments_schema(cls, *args, **kwargs):
return cls._args_schema

def _execute_operations(self):
self.pre_operations()
self.NspAssociationsList(ctx=self.ctx)()
self.post_operations()

@register_callback
def pre_operations(self):
pass

@register_callback
def post_operations(self):
pass

def _output(self, *args, **kwargs):
result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True)
Expand Down Expand Up @@ -191,9 +201,9 @@ def _build_schema_on_200(cls):
properties.private_link_resource = AAZObjectType(
serialized_name="privateLinkResource",
)
_build_schema_sub_resource_read(properties.private_link_resource)
_ListHelper._build_schema_sub_resource_read(properties.private_link_resource)
properties.profile = AAZObjectType()
_build_schema_sub_resource_read(properties.profile)
_ListHelper._build_schema_sub_resource_read(properties.profile)
properties.provisioning_state = AAZStrType(
serialized_name="provisioningState",
flags={"read_only": True},
Expand All @@ -205,21 +215,23 @@ def _build_schema_on_200(cls):
return cls._schema_on_200


_schema_sub_resource_read = None
class _ListHelper:
"""Helper class for List"""

_schema_sub_resource_read = None

def _build_schema_sub_resource_read(_schema):
global _schema_sub_resource_read
if _schema_sub_resource_read is not None:
_schema.id = _schema_sub_resource_read.id
return
@classmethod
def _build_schema_sub_resource_read(cls, _schema):
if cls._schema_sub_resource_read is not None:
_schema.id = cls._schema_sub_resource_read.id
return

_schema_sub_resource_read = AAZObjectType()
cls._schema_sub_resource_read = _schema_sub_resource_read = AAZObjectType()

sub_resource_read = _schema_sub_resource_read
sub_resource_read.id = AAZStrType()
sub_resource_read = _schema_sub_resource_read
sub_resource_read.id = AAZStrType()

_schema.id = _schema_sub_resource_read.id
_schema.id = cls._schema_sub_resource_read.id


__all__ = ["List"]
Loading

0 comments on commit a91ec6b

Please sign in to comment.