CLI for Applicaiton Policy Group
Supports CRUD operations for APGs, and associating/disassociating APG with PTG(s). Change-Id: I5f7798269a2414427971b868d0527e99e4a09e93 Implements: blueprint application-group
This commit is contained in:
parent
9d924f669a
commit
92c0197abe
@ -179,7 +179,8 @@ class ListPolicyTargetGroup(neutronV20.ListCommand):
|
|||||||
|
|
||||||
resource = 'policy_target_group'
|
resource = 'policy_target_group'
|
||||||
log = logging.getLogger(__name__ + '.ListPolicyTargetGroup')
|
log = logging.getLogger(__name__ + '.ListPolicyTargetGroup')
|
||||||
list_columns = ['id', 'name', 'description', 'l2_policy_id', 'subnets']
|
list_columns = ['id', 'name', 'description', 'application_policy_group_id',
|
||||||
|
'l2_policy_id', 'subnets']
|
||||||
pagination_support = True
|
pagination_support = True
|
||||||
sorting_support = True
|
sorting_support = True
|
||||||
|
|
||||||
@ -205,6 +206,11 @@ class CreatePolicyTargetGroup(neutronV20.CreateCommand):
|
|||||||
'name', metavar='NAME',
|
'name', metavar='NAME',
|
||||||
help=_('Name of Policy Target Group to create '
|
help=_('Name of Policy Target Group to create '
|
||||||
'(required argument)'))
|
'(required argument)'))
|
||||||
|
parser.add_argument(
|
||||||
|
'--application-policy-group', metavar='APPLICATION_POLICY_GROUP',
|
||||||
|
default='',
|
||||||
|
help=_('Application Policy Group UUID (optional, default '
|
||||||
|
'is None)'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--l2-policy', metavar='L2_POLICY',
|
'--l2-policy', metavar='L2_POLICY',
|
||||||
default='',
|
default='',
|
||||||
@ -241,6 +247,12 @@ class CreatePolicyTargetGroup(neutronV20.CreateCommand):
|
|||||||
self.get_client(), 'l2_policy',
|
self.get_client(), 'l2_policy',
|
||||||
parsed_args.l2_policy)
|
parsed_args.l2_policy)
|
||||||
|
|
||||||
|
if parsed_args.application_policy_group:
|
||||||
|
body[self.resource]['application_policy_group_id'] = (
|
||||||
|
neutronV20.find_resourceid_by_name_or_id(
|
||||||
|
self.get_client(), 'application_policy_group',
|
||||||
|
parsed_args.application_policy_group))
|
||||||
|
|
||||||
if parsed_args.network_service_policy:
|
if parsed_args.network_service_policy:
|
||||||
body[self.resource]['network_service_policy_id'] = \
|
body[self.resource]['network_service_policy_id'] = \
|
||||||
neutronV20.find_resourceid_by_name_or_id(
|
neutronV20.find_resourceid_by_name_or_id(
|
||||||
@ -292,6 +304,9 @@ class UpdatePolicyTargetGroup(neutronV20.UpdateCommand):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--l2-policy', metavar='L2_POLICY',
|
'--l2-policy', metavar='L2_POLICY',
|
||||||
help=_('New L2 policy'))
|
help=_('New L2 policy'))
|
||||||
|
parser.add_argument(
|
||||||
|
'--application-policy-group', metavar='APPLICATION_POLICY_GROUP',
|
||||||
|
help=_('New Application Policy Group'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--network-service-policy', metavar='NETWORK_SERVICE_POLICY',
|
'--network-service-policy', metavar='NETWORK_SERVICE_POLICY',
|
||||||
help=_('New Network Service Policy'))
|
help=_('New Network Service Policy'))
|
||||||
@ -326,6 +341,14 @@ class UpdatePolicyTargetGroup(neutronV20.UpdateCommand):
|
|||||||
self.get_client(), 'l2_policy',
|
self.get_client(), 'l2_policy',
|
||||||
parsed_args.l2_policy)
|
parsed_args.l2_policy)
|
||||||
|
|
||||||
|
if parsed_args.application_policy_group == '':
|
||||||
|
body[self.resource]['application_policy_group_id'] = None
|
||||||
|
elif parsed_args.application_policy_group:
|
||||||
|
body[self.resource]['application_policy_group_id'] = (
|
||||||
|
neutronV20.find_resourceid_by_name_or_id(
|
||||||
|
self.get_client(), 'application_policy_group',
|
||||||
|
parsed_args.application_policy_group))
|
||||||
|
|
||||||
if parsed_args.network_service_policy == '':
|
if parsed_args.network_service_policy == '':
|
||||||
body[self.resource]['network_service_policy_id'] = None
|
body[self.resource]['network_service_policy_id'] = None
|
||||||
elif parsed_args.network_service_policy:
|
elif parsed_args.network_service_policy:
|
||||||
@ -674,6 +697,85 @@ class UpdateL3Policy(neutronV20.UpdateCommand):
|
|||||||
return body
|
return body
|
||||||
|
|
||||||
|
|
||||||
|
class ListApplicationPolicyGroup(neutronV20.ListCommand):
|
||||||
|
"""List l3_policies that belong to a given tenant."""
|
||||||
|
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
log = logging.getLogger(__name__ + '.ListApplicationPolicyGroup')
|
||||||
|
_formatters = {}
|
||||||
|
list_columns = ['id', 'name', 'description', 'shared']
|
||||||
|
pagination_support = True
|
||||||
|
sorting_support = True
|
||||||
|
|
||||||
|
|
||||||
|
class ShowApplicationPolicyGroup(neutronV20.ShowCommand):
|
||||||
|
"""Show information of a given Application Policy Group."""
|
||||||
|
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
log = logging.getLogger(__name__ + '.ShowApplicationPolicyGroup')
|
||||||
|
|
||||||
|
|
||||||
|
class CreateApplicationPolicyGroup(neutronV20.CreateCommand):
|
||||||
|
"""Create a Application Policy Group for a given tenant."""
|
||||||
|
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
log = logging.getLogger(__name__ + '.CreateApplicationPolicyGroup')
|
||||||
|
|
||||||
|
def add_known_arguments(self, parser):
|
||||||
|
parser.add_argument(
|
||||||
|
'--description',
|
||||||
|
help=_('Description of the Application Policy Group'))
|
||||||
|
parser.add_argument(
|
||||||
|
'name', metavar='NAME',
|
||||||
|
help=_('Name of L3 policy to create (required argument)'))
|
||||||
|
n_utils.add_boolean_argument(
|
||||||
|
parser, '--shared', dest='shared',
|
||||||
|
help=_('Enable or disable resource sharing, default is False'))
|
||||||
|
|
||||||
|
def args2body(self, parsed_args):
|
||||||
|
body = {self.resource: {}, }
|
||||||
|
|
||||||
|
neutronV20.update_dict(parsed_args, body[self.resource],
|
||||||
|
['name', 'tenant_id', 'description',
|
||||||
|
'shared'])
|
||||||
|
|
||||||
|
return body
|
||||||
|
|
||||||
|
|
||||||
|
class DeleteApplicationPolicyGroup(neutronV20.DeleteCommand):
|
||||||
|
"""Delete a given Application Policy Group."""
|
||||||
|
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
log = logging.getLogger(__name__ + '.DeleteApplicationPolicyGroup')
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateApplicationPolicyGroup(neutronV20.UpdateCommand):
|
||||||
|
"""Update Application Policy Group's information."""
|
||||||
|
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
log = logging.getLogger(__name__ + '.UpdateApplicationPolicyGroup')
|
||||||
|
|
||||||
|
def add_known_arguments(self, parser):
|
||||||
|
parser.add_argument(
|
||||||
|
'--description',
|
||||||
|
help=_('New description of the Application Policy Group'))
|
||||||
|
parser.add_argument(
|
||||||
|
'--name',
|
||||||
|
help=_('New name of the Application Policy Group'))
|
||||||
|
n_utils.add_boolean_argument(
|
||||||
|
parser, '--shared', dest='shared',
|
||||||
|
help=_('Enable or disable resource sharing'))
|
||||||
|
|
||||||
|
def args2body(self, parsed_args):
|
||||||
|
body = {self.resource: {}, }
|
||||||
|
|
||||||
|
neutronV20.update_dict(parsed_args, body[self.resource],
|
||||||
|
['name', 'tenant_id', 'description',
|
||||||
|
'shared'])
|
||||||
|
|
||||||
|
return body
|
||||||
|
|
||||||
|
|
||||||
class ListNetworkServicePolicy(neutronV20.ListCommand):
|
class ListNetworkServicePolicy(neutronV20.ListCommand):
|
||||||
"""List Network Service Policies that belong to a given tenant."""
|
"""List Network Service Policies that belong to a given tenant."""
|
||||||
|
|
||||||
|
@ -102,6 +102,11 @@ COMMAND_V2 = {
|
|||||||
'group-update': gbp.UpdatePolicyTargetGroup,
|
'group-update': gbp.UpdatePolicyTargetGroup,
|
||||||
'group-list': gbp.ListPolicyTargetGroup,
|
'group-list': gbp.ListPolicyTargetGroup,
|
||||||
'group-show': gbp.ShowPolicyTargetGroup,
|
'group-show': gbp.ShowPolicyTargetGroup,
|
||||||
|
'application-policy-group-create': gbp.CreateApplicationPolicyGroup,
|
||||||
|
'application-policy-group-delete': gbp.DeleteApplicationPolicyGroup,
|
||||||
|
'application-policy-group-update': gbp.UpdateApplicationPolicyGroup,
|
||||||
|
'application-policy-group-list': gbp.ListApplicationPolicyGroup,
|
||||||
|
'application-policy-group-show': gbp.ShowApplicationPolicyGroup,
|
||||||
'l2policy-create': gbp.CreateL2Policy,
|
'l2policy-create': gbp.CreateL2Policy,
|
||||||
'l2policy-delete': gbp.DeleteL2Policy,
|
'l2policy-delete': gbp.DeleteL2Policy,
|
||||||
'l2policy-update': gbp.UpdateL2Policy,
|
'l2policy-update': gbp.UpdateL2Policy,
|
||||||
@ -192,6 +197,11 @@ COMMAND_V2 = {
|
|||||||
'ptg-update': gbp.UpdatePolicyTargetGroup,
|
'ptg-update': gbp.UpdatePolicyTargetGroup,
|
||||||
'ptg-list': gbp.ListPolicyTargetGroup,
|
'ptg-list': gbp.ListPolicyTargetGroup,
|
||||||
'ptg-show': gbp.ShowPolicyTargetGroup,
|
'ptg-show': gbp.ShowPolicyTargetGroup,
|
||||||
|
'apg-create': gbp.CreateApplicationPolicyGroup,
|
||||||
|
'apg-delete': gbp.DeleteApplicationPolicyGroup,
|
||||||
|
'apg-update': gbp.UpdateApplicationPolicyGroup,
|
||||||
|
'apg-list': gbp.ListApplicationPolicyGroup,
|
||||||
|
'apg-show': gbp.ShowApplicationPolicyGroup,
|
||||||
'l2p-create': gbp.CreateL2Policy,
|
'l2p-create': gbp.CreateL2Policy,
|
||||||
'l2p-delete': gbp.DeleteL2Policy,
|
'l2p-delete': gbp.DeleteL2Policy,
|
||||||
'l2p-update': gbp.UpdateL2Policy,
|
'l2p-update': gbp.UpdateL2Policy,
|
||||||
|
111
gbpclient/tests/unit/test_cli20_apg.py
Normal file
111
gbpclient/tests/unit/test_cli20_apg.py
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from gbpclient.gbp.v2_0 import groupbasedpolicy as gbp
|
||||||
|
from gbpclient.tests.unit import test_cli20
|
||||||
|
|
||||||
|
|
||||||
|
class CLITestV20ApplicationPolicyGroupJSON(test_cli20.CLITestV20Base):
|
||||||
|
|
||||||
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super(CLITestV20ApplicationPolicyGroupJSON, self).setUp()
|
||||||
|
|
||||||
|
def test_create_application_policy_group_with_mandatory_params(self):
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
cmd = gbp.CreateApplicationPolicyGroup(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
name = 'my-name'
|
||||||
|
tenant_id = 'my-tenant'
|
||||||
|
my_id = 'my-id'
|
||||||
|
args = ['--tenant-id', tenant_id,
|
||||||
|
name]
|
||||||
|
position_names = ['name', ]
|
||||||
|
position_values = [name, ]
|
||||||
|
self._test_create_resource(resource, cmd, name, my_id, args,
|
||||||
|
position_names, position_values,
|
||||||
|
tenant_id=tenant_id)
|
||||||
|
|
||||||
|
def test_create_application_policy_group_with_all_params(self):
|
||||||
|
"""application-policy-group-create with all params."""
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
cmd = gbp.CreateApplicationPolicyGroup(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
name = 'myname'
|
||||||
|
tenant_id = 'mytenant'
|
||||||
|
description = 'My Application Policy Group'
|
||||||
|
my_id = 'someid'
|
||||||
|
shared = 'true'
|
||||||
|
args = ['--tenant-id', tenant_id,
|
||||||
|
'--description', description,
|
||||||
|
'--shared', shared,
|
||||||
|
name]
|
||||||
|
position_names = ['name', ]
|
||||||
|
position_values = [name, ]
|
||||||
|
self._test_create_resource(resource, cmd, name, my_id, args,
|
||||||
|
position_names, position_values,
|
||||||
|
tenant_id=tenant_id,
|
||||||
|
description=description, shared=shared)
|
||||||
|
|
||||||
|
def test_list_application_policy_groups(self):
|
||||||
|
resource = 'application_policy_groups'
|
||||||
|
cmd = gbp.ListApplicationPolicyGroup(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
self._test_list_resources(resource, cmd, True)
|
||||||
|
|
||||||
|
def test_show_application_policy_group(self):
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
cmd = gbp.ShowApplicationPolicyGroup(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
args = ['--fields', 'id', self.test_id]
|
||||||
|
self._test_show_resource(resource, cmd, self.test_id, args, ['id'])
|
||||||
|
|
||||||
|
def test_update_application_policy_group(self):
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
cmd = gbp.UpdateApplicationPolicyGroup(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
self._test_update_resource(resource, cmd, 'myid',
|
||||||
|
['myid', '--name', 'myname',
|
||||||
|
'--tags', 'a', 'b'],
|
||||||
|
{'name': 'myname', 'tags': ['a', 'b'], })
|
||||||
|
|
||||||
|
def test_update_application_policy_group_with_all_params(self):
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
cmd = gbp.UpdateApplicationPolicyGroup(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
name = 'myname'
|
||||||
|
description = 'My Application Policy Group'
|
||||||
|
my_id = 'someid'
|
||||||
|
shared = 'true'
|
||||||
|
args = ['--name', name,
|
||||||
|
'--description', description,
|
||||||
|
'--shared', shared,
|
||||||
|
my_id]
|
||||||
|
params = {
|
||||||
|
'name': name,
|
||||||
|
'description': description,
|
||||||
|
'shared': shared
|
||||||
|
}
|
||||||
|
self._test_update_resource(resource, cmd, my_id, args, params)
|
||||||
|
|
||||||
|
def test_delete_application_policy_group_name(self):
|
||||||
|
resource = 'application_policy_group'
|
||||||
|
cmd = gbp.DeleteApplicationPolicyGroup(test_cli20.MyApp(sys.stdout),
|
||||||
|
None)
|
||||||
|
my_id = 'my-id'
|
||||||
|
args = [my_id]
|
||||||
|
self._test_delete_resource(resource, cmd, my_id, args)
|
@ -48,6 +48,7 @@ class CLITestV20PolicyTargetGroupJSON(test_cli20.CLITestV20Base):
|
|||||||
tenant_id = 'my-tenant'
|
tenant_id = 'my-tenant'
|
||||||
name = 'my-name'
|
name = 'my-name'
|
||||||
description = 'ptg description'
|
description = 'ptg description'
|
||||||
|
application_policy_group_id = 'application_policy_group_id'
|
||||||
l2_policy_id = 'l2_policy_id'
|
l2_policy_id = 'l2_policy_id'
|
||||||
provided_prs = "icmp-prs=false,web-prs=true"
|
provided_prs = "icmp-prs=false,web-prs=true"
|
||||||
consumed_prs = "ssh-prs=true,ftp-prs=false"
|
consumed_prs = "ssh-prs=true,ftp-prs=false"
|
||||||
@ -57,13 +58,15 @@ class CLITestV20PolicyTargetGroupJSON(test_cli20.CLITestV20Base):
|
|||||||
args = [name,
|
args = [name,
|
||||||
'--tenant-id', tenant_id,
|
'--tenant-id', tenant_id,
|
||||||
'--description', description,
|
'--description', description,
|
||||||
|
'--application-policy-group-id', application_policy_group_id,
|
||||||
'--l2-policy-id', l2_policy_id,
|
'--l2-policy-id', l2_policy_id,
|
||||||
'--provided-policy-rule-sets', provided_prs,
|
'--provided-policy-rule-sets', provided_prs,
|
||||||
'--consumed-policy-rule-sets', consumed_prs,
|
'--consumed-policy-rule-sets', consumed_prs,
|
||||||
'--network-service-policy-id', network_service_policy_id,
|
'--network-service-policy-id', network_service_policy_id,
|
||||||
'--shared', shared,
|
'--shared', shared,
|
||||||
'--intra-ptg-allow', intra_ptg_allow]
|
'--intra-ptg-allow', intra_ptg_allow]
|
||||||
position_names = ['name', 'description', 'l2_policy_id',
|
position_names = ['name', 'description', 'application_policy_group_id',
|
||||||
|
'l2_policy_id',
|
||||||
'provided_policy_rule_sets',
|
'provided_policy_rule_sets',
|
||||||
'consumed_policy_rule_sets',
|
'consumed_policy_rule_sets',
|
||||||
'network_service_policy_id']
|
'network_service_policy_id']
|
||||||
@ -73,7 +76,8 @@ class CLITestV20PolicyTargetGroupJSON(test_cli20.CLITestV20Base):
|
|||||||
consumed_policy_rule_sets = {
|
consumed_policy_rule_sets = {
|
||||||
'ssh-prs': 'true',
|
'ssh-prs': 'true',
|
||||||
'ftp-prs': 'false'}
|
'ftp-prs': 'false'}
|
||||||
position_values = [name, description, l2_policy_id,
|
position_values = [name, description, application_policy_group_id,
|
||||||
|
l2_policy_id,
|
||||||
provided_policy_rule_sets,
|
provided_policy_rule_sets,
|
||||||
consumed_policy_rule_sets,
|
consumed_policy_rule_sets,
|
||||||
network_service_policy_id]
|
network_service_policy_id]
|
||||||
@ -111,6 +115,7 @@ class CLITestV20PolicyTargetGroupJSON(test_cli20.CLITestV20Base):
|
|||||||
my_id = 'my-id'
|
my_id = 'my-id'
|
||||||
name = 'ptg'
|
name = 'ptg'
|
||||||
description = 'ptg description'
|
description = 'ptg description'
|
||||||
|
application_policy_group_id = 'application_policy_group_id'
|
||||||
l2_policy_id = 'l2_policy_id'
|
l2_policy_id = 'l2_policy_id'
|
||||||
provided_prs = "icmp-prs=false,web-prs=true"
|
provided_prs = "icmp-prs=false,web-prs=true"
|
||||||
consumed_prs = "ssh-prs=true,ftp-prs=false"
|
consumed_prs = "ssh-prs=true,ftp-prs=false"
|
||||||
@ -120,6 +125,7 @@ class CLITestV20PolicyTargetGroupJSON(test_cli20.CLITestV20Base):
|
|||||||
args = [my_id,
|
args = [my_id,
|
||||||
'--name', name,
|
'--name', name,
|
||||||
'--description', description,
|
'--description', description,
|
||||||
|
'--application-policy-group-id', application_policy_group_id,
|
||||||
'--l2-policy-id', l2_policy_id,
|
'--l2-policy-id', l2_policy_id,
|
||||||
'--provided-policy-rule-sets', provided_prs,
|
'--provided-policy-rule-sets', provided_prs,
|
||||||
'--consumed-policy-rule-sets', consumed_prs,
|
'--consumed-policy-rule-sets', consumed_prs,
|
||||||
@ -135,6 +141,7 @@ class CLITestV20PolicyTargetGroupJSON(test_cli20.CLITestV20Base):
|
|||||||
params = {
|
params = {
|
||||||
'name': name,
|
'name': name,
|
||||||
'description': description,
|
'description': description,
|
||||||
|
'application_policy_group_id': application_policy_group_id,
|
||||||
'l2_policy_id': l2_policy_id,
|
'l2_policy_id': l2_policy_id,
|
||||||
'provided_policy_rule_sets': provided_policy_rule_sets,
|
'provided_policy_rule_sets': provided_policy_rule_sets,
|
||||||
'consumed_policy_rule_sets': consumed_policy_rule_sets,
|
'consumed_policy_rule_sets': consumed_policy_rule_sets,
|
||||||
@ -172,6 +179,17 @@ class CLITestV20PolicyTargetGroupJSON(test_cli20.CLITestV20Base):
|
|||||||
params = {'network_service_policy_id': None}
|
params = {'network_service_policy_id': None}
|
||||||
self._test_update_resource(resource, cmd, my_id, args, params)
|
self._test_update_resource(resource, cmd, my_id, args, params)
|
||||||
|
|
||||||
|
def test_update_policy_target_group_unset_apg(self):
|
||||||
|
"""policy-target-group-update."""
|
||||||
|
resource = 'policy_target_group'
|
||||||
|
cmd = gbp.UpdatePolicyTargetGroup(test_cli20.MyApp(sys.stdout), None)
|
||||||
|
my_id = 'my-id'
|
||||||
|
application_policy_group_id = ''
|
||||||
|
args = [my_id,
|
||||||
|
'--application-policy-group', application_policy_group_id]
|
||||||
|
params = {'application_policy_group_id': None}
|
||||||
|
self._test_update_resource(resource, cmd, my_id, args, params)
|
||||||
|
|
||||||
def test_delete_policy_target_group_name(self):
|
def test_delete_policy_target_group_name(self):
|
||||||
"""policy-target-group-delete."""
|
"""policy-target-group-delete."""
|
||||||
resource = 'policy_target_group'
|
resource = 'policy_target_group'
|
||||||
|
@ -149,6 +149,8 @@ class Client(object):
|
|||||||
policy_target_path = "/grouppolicy/policy_targets/%s"
|
policy_target_path = "/grouppolicy/policy_targets/%s"
|
||||||
policy_target_groups_path = "/grouppolicy/policy_target_groups"
|
policy_target_groups_path = "/grouppolicy/policy_target_groups"
|
||||||
policy_target_group_path = "/grouppolicy/policy_target_groups/%s"
|
policy_target_group_path = "/grouppolicy/policy_target_groups/%s"
|
||||||
|
application_policy_groups_path = "/grouppolicy/application_policy_groups"
|
||||||
|
application_policy_group_path = "/grouppolicy/application_policy_groups/%s"
|
||||||
l2_policies_path = "/grouppolicy/l2_policies"
|
l2_policies_path = "/grouppolicy/l2_policies"
|
||||||
l2_policy_path = "/grouppolicy/l2_policies/%s"
|
l2_policy_path = "/grouppolicy/l2_policies/%s"
|
||||||
l3_policies_path = "/grouppolicy/l3_policies"
|
l3_policies_path = "/grouppolicy/l3_policies"
|
||||||
@ -181,6 +183,7 @@ class Client(object):
|
|||||||
# API has no way to report plurals, so we have to hard code them
|
# API has no way to report plurals, so we have to hard code them
|
||||||
EXTED_PLURALS = {'policy_targets': 'policy_target',
|
EXTED_PLURALS = {'policy_targets': 'policy_target',
|
||||||
'policy_target_groups': 'policy_target_group',
|
'policy_target_groups': 'policy_target_group',
|
||||||
|
'application_policy_groups': 'application_policy_group',
|
||||||
'l2_policies': 'l2_policy',
|
'l2_policies': 'l2_policy',
|
||||||
'l3_policies': 'l3_policy',
|
'l3_policies': 'l3_policy',
|
||||||
'network_service_policies': 'network_service_policy',
|
'network_service_policies': 'network_service_policy',
|
||||||
@ -218,6 +221,40 @@ class Client(object):
|
|||||||
return self.get(self.policy_target_path % (policy_target),
|
return self.get(self.policy_target_path % (policy_target),
|
||||||
params=_params)
|
params=_params)
|
||||||
|
|
||||||
|
@APIParamsCall
|
||||||
|
def list_application_policy_groups(self, retrieve_all=True, **_params):
|
||||||
|
"""Fetches a list of all application_policy_groups for a tenant."""
|
||||||
|
# Pass filters in "params" argument to do_request
|
||||||
|
return self.list('application_policy_groups',
|
||||||
|
self.application_policy_groups_path,
|
||||||
|
retrieve_all, **_params)
|
||||||
|
|
||||||
|
@APIParamsCall
|
||||||
|
def show_application_policy_group(
|
||||||
|
self, application_policy_group, **_params):
|
||||||
|
"""Fetches information of a certain application_policy_group."""
|
||||||
|
return self.get(self.application_policy_group_path % (
|
||||||
|
application_policy_group), params=_params)
|
||||||
|
|
||||||
|
@APIParamsCall
|
||||||
|
def create_application_policy_group(self, body=None):
|
||||||
|
"""Creates a new application_policy_group."""
|
||||||
|
return self.post(self.application_policy_groups_path, body=body)
|
||||||
|
|
||||||
|
@APIParamsCall
|
||||||
|
def update_application_policy_group(
|
||||||
|
self, application_policy_group, body=None):
|
||||||
|
"""Updates a application_policy_group."""
|
||||||
|
return self.put(
|
||||||
|
self.application_policy_group_path % (application_policy_group),
|
||||||
|
body=body)
|
||||||
|
|
||||||
|
@APIParamsCall
|
||||||
|
def delete_application_policy_group(self, application_policy_group):
|
||||||
|
"""Deletes the specified application_policy_group."""
|
||||||
|
return self.delete(
|
||||||
|
self.application_policy_group_path % (application_policy_group))
|
||||||
|
|
||||||
@APIParamsCall
|
@APIParamsCall
|
||||||
def create_policy_target(self, body=None):
|
def create_policy_target(self, body=None):
|
||||||
"""Creates a new policy target."""
|
"""Creates a new policy target."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user