<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def build_acl(self, tenant_name, rule):
 """Build the ACL. """

        # TODO(padkrish) actions that is not deny or allow, throw error
        if rule['action'] == 'allow':
            action = 'permit'
        else:
            action = 'deny'
        acl_str = "access-list %(tenant)s extended %(action)s %(prot)s "
        acl = acl_str % {'tenant': tenant_name, 'action': action,
                         'prot': rule.get('protocol')}
        src_ip = self.get_ip_address(rule.get('source_ip_address'))
        ip_acl = self.build_acl_ip(src_ip)
        acl += ip_acl

        acl += self.build_acl_port(rule.get('source_port'))

        dst_ip = self.get_ip_address(rule.get('destination_ip_address'))
        ip_acl = self.build_acl_ip(dst_ip)
        acl += ip_acl

        acl += self.build_acl_port(rule.get('destination_port'),
                                   enabled=rule.get('enabled'))
        return acl