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
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