def main(args):
    '''Retrieve all instrument deployment events, group them by array subsite,
    and print the response as a JSON object'''
    
    status = 1
    
    # Create the UFrame instance
    if args.base_url:
        uframe = UFrame(base_url=args.base_url, timeout=args.timeout)
    else:
        uframe = UFrame(timeout=args.timeout)
        
    # Fetch the events request
    uframe.fetch_events()
    if not uframe.events:
        sys.stderr.write('No events requested: {:s}\n'.format(uframe))
        sys.stdout.write('[]\n')
        return status
        
    # Get only the .DeploymentEvents
    deployment_events = uframe.search_events_by_type('.DeploymentEvent')
    if not deployment_events:
        sys.stderr.write('No .DeploymentEvents found: {:s}\n'.format(uframe))
        sys.stdout.write('[]\n')
        return status
        
    # Create the grouping of instrument deployments organized by array subsite
    instruments = group_instrument_deployment_events_by_subsite(deployment_events)
    
    # JSON encode and print to STDOUT
    sys.stdout.write('{:s}\n'.format(json.dumps(instruments)))
    
    status = 0
     
    return status