def main(argv):
    '''Main function.'''

    sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

    StreamLog.init()

    #   Identify settings module and set environment appropriately
    sdg.set_settings_module()

    #   pylint: disable=F0401,E0611
    from sdg.django.handoff.models import AnnouncedSession
    
    opt_parser = OptionParser(argv)

    opt_parser.add_option('--days', dest='days', action='store', type='int',
                          help='number of days of data to be retained')

    (opt, leftover_arg_list) = opt_parser.parse_args()

    if len(leftover_arg_list):
        print opt_parser.get_usage()
        return 1

    try:
        if opt.days is not None:
            AnnouncedSession.prune(days=opt.days)
        else:
            AnnouncedSession.prune()

    #   pylint: disable=W0703
    except Exception, x:
        logging.info(x.message)
        return 1
Exemple #2
0
    def announce(self, request=None, user_data=None):
        '''
        Announce session by writing its pertinent information to
        AnnouncedSession model. Uses Django request object.
        '''

        if not request:
            raise KeyError('request not specified')

        #   Populate an AnnouncedSession object.
        announced_session = AnnouncedSession \
            (
            application_id=self.application_id,
            session_private=self.session_private,
            session_public=self.session_public,
            user_data=WSAPI.encode(user_data)
            )

        #   Commit model.
        announced_session.save()

        #   Write primary key of announced session to Django session object.
        dkey = self.django_key()
        request.session[dkey] = announced_session.pk

        logging.debug('%s: announce: session public: %s (%s)' % \
                      (self.classname(), self.session_public, dkey))
        return None