Exemplo n.º 1
0
def create_action(action_name,
                  cache_behavior=None,
                  cache_duration=None,
                  header_action=None,
                  header_name=None,
                  header_value=None,
                  query_string_behavior=None,
                  query_parameters=None,
                  redirect_type=None,
                  redirect_protocol=None,
                  custom_hostname=None,
                  custom_path=None,
                  custom_query_string=None,
                  custom_fragment=None,
                  source_pattern=None,
                  destination=None,
                  preserve_unmatched_path=None):
    if action_name == "CacheExpiration":
        return DeliveryRuleCacheExpirationAction(
            parameters=CacheExpirationActionParameters(
                cache_behavior=cache_behavior,
                cache_duration=cache_duration,
                cache_type=CacheType.ALL))
    if action_name in ('RequestHeader', 'ModifyRequestHeader'):
        return DeliveryRuleRequestHeaderAction(
            parameters=HeaderActionParameters(header_action=header_action,
                                              header_name=header_name,
                                              value=header_value))
    if action_name in ('ResponseHeader', 'ModifyResponseHeader'):
        return DeliveryRuleResponseHeaderAction(
            parameters=HeaderActionParameters(header_action=header_action,
                                              header_name=header_name,
                                              value=header_value))
    if action_name == "CacheKeyQueryString":
        return DeliveryRuleCacheKeyQueryStringAction(
            parameters=CacheKeyQueryStringActionParameters(
                query_string_behavior=query_string_behavior,
                query_parameters=query_parameters))
    if action_name == 'UrlRedirect':
        return UrlRedirectAction(parameters=UrlRedirectActionParameters(
            redirect_type=redirect_type,
            destination_protocol=redirect_protocol,
            custom_path=custom_path,
            custom_hostname=custom_hostname,
            custom_query_string=custom_query_string,
            custom_fragment=custom_fragment))
    if action_name == 'UrlRewrite':
        return UrlRewriteAction(parameters=UrlRewriteActionParameters(
            source_pattern=source_pattern,
            destination=destination,
            preserve_unmatched_path=preserve_unmatched_path))
    return DeliveryRuleAction()
Exemplo n.º 2
0
def create_action(action_name, cache_behavior=None, cache_duration=None, header_action=None,
                  header_name=None, header_value=None, query_string_behavior=None, query_parameters=None,
                  redirect_type=None, redirect_protocol=None, custom_hostname=None, custom_path=None,
                  custom_query_string=None, custom_fragment=None, source_pattern=None, destination=None,
                  preserve_unmatched_path=None, cmd=None, resource_group_name=None, profile_name=None,
                  endpoint_name=None, origin_group=None):
    if action_name == "CacheExpiration":
        return DeliveryRuleCacheExpirationAction(
            parameters=CacheExpirationActionParameters(
                cache_behavior=cache_behavior,
                cache_duration=cache_duration,
                cache_type=CacheType.ALL
            ))
    if action_name in ('RequestHeader', 'ModifyRequestHeader'):
        return DeliveryRuleRequestHeaderAction(
            parameters=HeaderActionParameters(
                header_action=header_action,
                header_name=header_name,
                value=header_value
            ))
    if action_name in ('ResponseHeader', 'ModifyResponseHeader'):
        return DeliveryRuleResponseHeaderAction(
            parameters=HeaderActionParameters(
                header_action=header_action,
                header_name=header_name,
                value=header_value
            ))
    if action_name == "CacheKeyQueryString":
        return DeliveryRuleCacheKeyQueryStringAction(
            parameters=CacheKeyQueryStringActionParameters(
                query_string_behavior=query_string_behavior,
                query_parameters=query_parameters
            ))
    if action_name == 'UrlRedirect':
        return UrlRedirectAction(
            parameters=UrlRedirectActionParameters(
                redirect_type=redirect_type,
                destination_protocol=redirect_protocol,
                custom_path=custom_path,
                custom_hostname=custom_hostname,
                custom_query_string=custom_query_string,
                custom_fragment=custom_fragment
            ))
    if action_name == 'UrlRewrite':
        return UrlRewriteAction(
            parameters=UrlRewriteActionParameters(
                source_pattern=source_pattern,
                destination=destination,
                preserve_unmatched_path=preserve_unmatched_path
            ))
    if action_name == 'OriginGroupOverride':
        if not is_valid_resource_id(origin_group):
            # Ideally we should use resource_id but Auzre FrontDoor portal extension has some case-sensitive issues
            # that prevent it from displaying correctly in portal.
            origin_group = f'/subscriptions/{get_subscription_id(cmd.cli_ctx)}/resourcegroups/{resource_group_name}' \
                           f'/providers/Microsoft.Cdn/profiles/{profile_name}/endpoints/{endpoint_name}' \
                           f'/origingroups/{origin_group.lower()}'

        return OriginGroupOverrideAction(
            parameters=OriginGroupOverrideActionParameters(
                origin_group=ResourceReference(id=origin_group)
            ))

    return DeliveryRuleAction()