Exemplo n.º 1
0
def get_lifecycle(bucket_name, **conn):
    try:
        result = get_bucket_lifecycle_configuration(Bucket=bucket_name, **conn)
    except ClientError as e:
        if 'NoSuchLifecycleConfiguration' not in str(e):
            raise e
        return []

    lifecycle_rules = []
    rules = result['Rules']
    for rule in rules:
        rule_dict = {
            'id': rule['ID'],
            'status': rule['Status'],
            'prefix': rule['Prefix'],
        }

        if rule.get('Transitions'):
            transition_list = []
            for transition in rule['Transitions']:
                transition_dict = {}
                if transition.get('Days'):
                    transition_dict['days'] = transition['Days']
                if transition.get('Date'):
                    transition_dict['date'] = transition['Date'].strftime(
                        '%Y-%m-%dT%H:%M:%SZ')
                transition_dict['storage_class'] = transition['StorageClass']
                transition_list.append(transition_dict)

            rule_dict['transitions'] = transition_list

        if rule.get('Expiration'):
            expiration_dict = {}
            expiration = rule['Expiration']
            if expiration.get('Days'):
                expiration_dict['days'] = expiration['Days']
            if expiration.get('Date'):
                expiration_dict['date'] = expiration['Date'].strftime(
                    '%Y-%m-%dT%H:%M:%SZ')

            rule_dict['expiration'] = expiration_dict

        if rule.get('AbortIncompleteMultipartUpload'):
            abort_multipart_dict = {}
            abort_multipart = rule['AbortIncompleteMultipartUpload']
            if abort_multipart.get('DaysAfterInitiation'):
                abort_multipart_dict['days'] = abort_multipart[
                    'DaysAfterInitiation']
            rule_dict['abort_multipart'] = abort_multipart_dict

        lifecycle_rules.append(rule_dict)
    return lifecycle_rules
Exemplo n.º 2
0
def get_lifecycle(bucket_name, **conn):
    try:
        result = get_bucket_lifecycle_configuration(Bucket=bucket_name, **conn)
    except ClientError as e:
        if 'NoSuchLifecycleConfiguration' not in str(e):
            raise e
        return []

    for rule in result['Rules']:
        for transition in rule.get('Transitions', []):
            if 'Date' in transition:
                transition['Date'] = str(transition['Date'])
        for expiration in rule.get('Expiration', []):
            if 'Date' in expiration:
                expiration['Date'] = str(expiration['Date'])

    return result['Rules']
Exemplo n.º 3
0
def get_lifecycle(bucket_name, **conn):
    try:
        result = get_bucket_lifecycle_configuration(Bucket=bucket_name, **conn)
    except ClientError as e:
        if 'NoSuchLifecycleConfiguration' not in str(e):
            raise e
        return []

    for rule in result['Rules']:
        # Save all dates as a Proper ISO 8601 String:
        for transition in rule.get('Transitions', []):
            if 'Date' in transition:
                transition['Date'] = get_iso_string(transition["Date"])

        if rule.get("Expiration"):
            if 'Date' in rule["Expiration"]:
                rule["Expiration"]["Date"] = get_iso_string(
                    rule["Expiration"]["Date"])

    return result['Rules']
Exemplo n.º 4
0
def get_lifecycle(bucket_name, **conn):
    try:
        result = get_bucket_lifecycle_configuration(Bucket=bucket_name, **conn)
    except ClientError as e:
        if 'NoSuchLifecycleConfiguration' not in str(e):
            raise e
        return []

    for rule in result['Rules']:
        # Save all dates as a Proper ISO 8601 String:
        for transition in rule.get('Transitions', []):
            if 'Date' in transition:
                transition['Date'] = transition["Date"].replace(tzinfo=None, microsecond=0).isoformat() + "Z"

        if rule.get("Expiration"):
            if 'Date' in rule["Expiration"]:
                rule["Expiration"]["Date"] = \
                    rule["Expiration"]["Date"].replace(tzinfo=None, microsecond=0).isoformat() + "Z"

    return result['Rules']