def Run(cls, release_track, args, support_redirect): """Validates arguments and patches a security policy rule.""" if not any([ args.description, args.src_ip_ranges, args.expression, args.action, args.preview is not None ]): raise exceptions.MinimumArgumentException([ '--description', '--src-ip-ranges', '--expression', '--action', '--preview' ], 'At least one property must be modified.') holder = base_classes.ComputeApiHolder(release_track) ref = holder.resources.Parse( args.name, collection='compute.securityPolicyRules', params={ 'project': properties.VALUES.core.project.GetOrFail, 'securityPolicy': args.security_policy }) security_policy_rule = client.SecurityPolicyRule( ref, compute_client=holder.client) redirect_target = None if support_redirect: redirect_target = args.redirect_target return security_policy_rule.Patch(src_ip_ranges=args.src_ip_ranges, expression=args.expression, action=args.action, description=args.description, preview=args.preview, redirect_target=redirect_target)
def Run(self, args): if not any([ args.description, args.src_ip_ranges, args.expression, args.action, args.preview is not None ]): raise exceptions.MinimumArgumentException([ '--description', '--src-ip-ranges', '--expression', '--action', '--preview' ], 'At least one property must be modified.') holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) ref = holder.resources.Parse( args.name, collection='compute.securityPolicyRules', params={ 'project': properties.VALUES.core.project.GetOrFail, 'securityPolicy': args.security_policy }) security_policy_rule = client.SecurityPolicyRule( ref, compute_client=holder.client) return security_policy_rule.Patch(src_ip_ranges=args.src_ip_ranges, expression=args.expression, action=args.action, description=args.description, preview=args.preview)
def Run(cls, release_track, args, support_redirect, support_rate_limit): """Validates arguments and patches a security policy rule.""" modified_fields = [ args.description, args.src_ip_ranges, args.expression, args.action, args.preview is not None ] min_args = [ '--description', '--src-ip-ranges', '--expression', '--action', '--preview' ] if support_redirect: modified_fields.append(args.redirect_target) min_args.append('--redirect_target') if support_rate_limit: modified_fields.extend([ args.rate_limit_threshold_count, args.rate_limit_threshold_interval_sec, args.conform_action, args.exceed_action, args.enforce_on_key, args.ban_threshold_count, args.ban_threshold_interval_sec, args.ban_duration_sec ]) min_args.extend([ '--rate-limit-threshold-count', '--rate-limit-threshold-interval-sec', '--conform-action', '--exceed-action', '--enforce-on-key', '--ban-threshold-count', '--ban-threshold-interval-sec', '--ban-duration-sec' ]) if not any(modified_fields): raise exceptions.MinimumArgumentException( min_args, 'At least one property must be modified.') holder = base_classes.ComputeApiHolder(release_track) ref = holder.resources.Parse( args.name, collection='compute.securityPolicyRules', params={ 'project': properties.VALUES.core.project.GetOrFail, 'securityPolicy': args.security_policy }) security_policy_rule = client.SecurityPolicyRule( ref, compute_client=holder.client) redirect_target = None rate_limit_options = None if support_redirect: redirect_target = args.redirect_target if support_rate_limit: rate_limit_options = ( security_policies_utils.CreateRateLimitOptions( holder.client, args)) return security_policy_rule.Patch( src_ip_ranges=args.src_ip_ranges, expression=args.expression, action=args.action, description=args.description, preview=args.preview, redirect_target=redirect_target, rate_limit_options=rate_limit_options)
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) ref = holder.resources.Parse( args.name, collection='compute.securityPolicyRules', params={ 'project': properties.VALUES.core.project.GetOrFail, 'securityPolicy': args.security_policy }) security_policy_rule = client.SecurityPolicyRule( ref, compute_client=holder.client) return security_policy_rule.Describe()
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) ref = holder.resources.Parse( args.name, collection='compute.securityPolicyRules', params={ 'project': properties.VALUES.core.project.GetOrFail, 'securityPolicy': args.security_policy }) security_policy_rule = client.SecurityPolicyRule( ref, compute_client=holder.client) return security_policy_rule.Create(src_ip_ranges=args.src_ip_ranges, expression=args.expression, action=args.action, description=args.description, preview=args.preview)
def Run(self, args): holder = base_classes.ComputeApiHolder(self.ReleaseTrack()) refs = [] for name in args.names: refs.append(holder.resources.Parse( name, collection=self.Collection(), params={ 'project': properties.VALUES.core.project.GetOrFail, 'securityPolicy': args.security_policy })) utils.PromptForDeletion(refs) requests = [] for ref in refs: security_policy_rule = client.SecurityPolicyRule( ref, compute_client=holder.client) requests.extend(security_policy_rule.Delete(only_generate_request=True)) return holder.client.MakeRequests(requests)
def Run(cls, release_track, args, support_redirect): """Validates arguments and creates a security policy rule.""" holder = base_classes.ComputeApiHolder(release_track) ref = holder.resources.Parse( args.name, collection='compute.securityPolicyRules', params={ 'project': properties.VALUES.core.project.GetOrFail, 'securityPolicy': args.security_policy }) security_policy_rule = client.SecurityPolicyRule( ref, compute_client=holder.client) redirect_target = None if support_redirect: redirect_target = args.redirect_target return security_policy_rule.Create(src_ip_ranges=args.src_ip_ranges, expression=args.expression, action=args.action, description=args.description, preview=args.preview, redirect_target=redirect_target)
def Run(cls, release_track, args, support_redirect, support_rate_limit, support_header_action): """Validates arguments and creates a security policy rule.""" holder = base_classes.ComputeApiHolder(release_track) ref = holder.resources.Parse( args.name, collection='compute.securityPolicyRules', params={ 'project': properties.VALUES.core.project.GetOrFail, 'securityPolicy': args.security_policy }) security_policy_rule = client.SecurityPolicyRule( ref, compute_client=holder.client) redirect_options = None rate_limit_options = None if support_redirect: redirect_options = (security_policies_utils.CreateRedirectOptions( holder.client, args)) if support_rate_limit: rate_limit_options = ( security_policies_utils.CreateRateLimitOptions( holder.client, args)) request_headers_to_add = None if support_header_action: request_headers_to_add = args.request_headers_to_add return security_policy_rule.Create( src_ip_ranges=args.src_ip_ranges, expression=args.expression, action=args.action, description=args.description, preview=args.preview, redirect_options=redirect_options, rate_limit_options=rate_limit_options, request_headers_to_add=request_headers_to_add)