OneCompiler

py

106

def main():
session = get_session(db='srpdb')
args = get_parse_args(session)
data = cmdb_query()
insert_report_data(data, 'ExportArrayToLegacy')
date_stamp = datetime.datetime.utcnow().strftime("%Y_%m_%d")
fn = f'ArraytoLegacy121_{date_stamp}.csv'
folder = os.path.join(settings['REPORTDIR'], 'CMDB', 'ArraytoLegacy121')
make_folder(folder)
src_fn = os.path.join(folder, fn)
dst_fn = f'StorageCMDB/ArraytoLegacy121.csv'

with open(src_fn, 'w', encoding='utf-8', newline='') as csvfile:
    headers = [
        'Region',
        'Country',
        'DC',
        'Hall',
        'Environment',
        'Array',
        'Array Family',
        'Array Model',
        'Comment',
        'Purpose',
        'Legacy'

    ]
    writer = csv.DictWriter(csvfile, fieldnames=headers, quoting=csv.QUOTE_ALL, dialect='excel')
    writer.writeheader()
    for _key in data:
        row = _key
        writer.writerow(row)

print(src_fn)
if args.sftp:
    for _role in ['PROD', 'DEV']:
            put(
             source_file=src_fn,
             remote_file=dst_fn,
             sftp_server=settings['SPDW_SFTP'][_role]['server'],
             send_zipped=False,
             delete_on_success=False,
             aim_obj=dict(
                 aim_object=settings['SPDW_SFTP'][_role]['aim_object'],
                 aim_safe=settings['SPDW_SFTP'][_role]['aim_safe'],
                 aim_app=settings['SPDW_SFTP'][_role]['aim_app']
             )
         )

archive_file(src_fn, archive_name=os.path.basename(src_fn))
------------------------------------------------------
def main():
session = get_session(db='srpdb_prod')
args = get_parse_args(session)
spdw_host_summary = cache_spdw_host_summary(session)
normalized_volume_summary = get_normalized_volume_summary(session, args.date)
host_summary = get_host_summary(session, spdw_host_summary, args.date)
insert_report_data(host_summary, 'ExportBusinessUtilization')
enrich_row_with_normalized_data(session, host_summary, normalized_volume_summary, args.date)
print(len(host_summary))

date_stamp = datetime.datetime.strptime(str(args.date), "%Y%m%d").strftime("%Y_%m_%d")
folder = os.path.join(settings['REPORTDIR'], 'CMDB', 'BusinessUtilisation')
make_folder(folder)
fn = f'BusinessUtilisation_{date_stamp}.csv'
src_fn = os.path.join(folder, fn)
dst_fn = 'StorageCMDB/BusinessUtilisation.csv'

with open(src_fn, 'w', newline='') as csvfile:
    headers = [
        'Array Serial Number(s)',
        'Array',
        'Array Type',
        'Hostname',
        'Host Type',
        'Hosts Sharing Capacity',
        'Primary Presented Non-Chargeable Capacity (GB)',
        'Primary Used Non-Chargeable Capacity (GB)',
        'Primary Chargeable Capacity - Normalized (GB)',
        'Primary Used Capacity - Normalized (GB)',
        'Region',
        'Country',
        'DC',
        'Hall',
        'Environment',
        'Purpose',
        'Comment',
        'Legacy'
    ]
    writer = csv.DictWriter(csvfile, fieldnames=headers, quoting=csv.QUOTE_ALL, dialect='excel')
    writer.writeheader()
    for _key in host_summary:
        row = host_summary[_key]
        row['Primary Presented Non-Chargeable Capacity (GB)'] = float(round(row['Allocated'] / 1024 / 1024 / 1024,0))
        row['Primary Used Non-Chargeable Capacity (GB)'] = float(round(row['Used'] / 1024 / 1024 / 1024,0))
        row['Primary Chargeable Capacity - Normalized (GB)'] = float(round(row['normalized_volume_size'] / 1024 / 1024 / 1024,0))
        row['Primary Used Capacity - Normalized (GB)'] = float(round(row['normalized_volume_used'] / 1024 / 1024 / 1024,0))
        row['Primary Used Capacity - Normalized (GB)'] = float(round(row['normalized_volume_dehydrated'] / 1024 / 1024 / 1024,0))
        row['Environment'] = row['State']
        row['Comment'] = row['Description']
        row['Legacy'] = row['ChargeBackTier']
        del row['Allocated']
        del row['Used']
        del row['normalized_volume_size']
        del row['normalized_volume_used']
        del row['normalized_volume_dehydrated']
        del row['State']
        del row['Description']
        del row['ChargeBackTier']

        writer.writerow(row)

print(src_fn)
if args.sftp:
    for _role in ['DEV', 'PROD']:
        put(
            source_file=src_fn,
            remote_file=dst_fn,
            sftp_server=settings['SPDW_SFTP'][_role]['server'],
            send_zipped=False,
            delete_on_success=False,
            aim_obj=dict(
                aim_object=settings['SPDW_SFTP'][_role]['aim_object'],
                aim_safe=settings['SPDW_SFTP'][_role]['aim_safe'],
                aim_app=settings['SPDW_SFTP'][_role]['aim_app']
            )
        )

archive_file(src_fn, archive_name=os.path.basename(src_fn))