Beispiel #1
0
    def __SetLogPreference(self):
        """
        Set correct log level for each log category according
        to preferences.
        """
        logFiles = Log.GetCategories()

        for name in logFiles:
            # Get level from preferences.
            logLevel = int(self.preferences.GetPreference(name))
            fLevels = self.GetFileLogLevels()
            sLevels = self.GetStreamLogLevels()

            # Level for files
            if fLevels:
                fLevels.SetLevel(logLevel, name)
            # Level for streams
            if sLevels:
                sLevels.SetLevel(logLevel, name)
    def __init__(self):
        '''
        Initiate preferences class. Simple client configuration
        parameters are saved in preferences dictionary. More
        complicated data structures are added as separate class
        objects and are saved to separate config file, for example
        client profile.
        '''

        self.preferences = {}

        # Default preferences
        self.default = {
            self.SHUTDOWN_MEDIA: 0,
            self.RECONNECT: 1,
            self.MAX_RECONNECT: 3,
            self.RECONNECT_TIMEOUT: 10,
            self.STARTUP_MEDIA: 1,
            self.NODE_BUILTIN: "1",
            self.NODE_URL: "",
            self.NODE_CONFIG_TYPE: NodeConfigDescription.SYSTEM,
            self.NODE_CONFIG: "default",
            self.MULTICAST: 1,
            self.BEACON: 1,
            self.LOG_TO_CMD: 0,
            self.ENABLE_DISPLAY: 1,
            self.ENABLE_VIDEO: 1,
            self.ENABLE_AUDIO: 1,
            self.DISPLAY_MODE: self.EXITS,
            self.BRIDGE_REGISTRY:
            "http://www.accessgrid.org/registry/peers.txt|http://www.ap-accessgrid.org/registry/peers.txt",
            self.PROXY_ENABLED: 0,
            self.PROXY_HOST: "",
            self.PROXY_PORT: "",
            self.PROXY_USERNAME: "",
            self.PROXY_PASSWORD: "",
            self.PROXY_AUTH_KEY: "stR1ng 1s SixTEN",
            self.PROXY_AUTH_ENABLED: 0,
            self.MULTICAST_DETECT_HOST: "233.4.200.18",
            self.MULTICAST_DETECT_PORT: 10002,
            self.BRIDGE_PING_UPDATE_DELAY: 600,
            self.ORDER_BRIDGES_BY_PING: 1,
            self.VENUESERVER_URLS: "https://vv3.mcs.anl.gov:8000/VenueServer"
        }

        # Set default log levels to Log.DEBUG.
        # Keys used for log preferences
        # are the same as listed in Log.py.
        # Save log levels as
        # Log.VenueClient=Log.DEBUG.
        categories = Log.GetCategories()
        for category in categories:
            self.default[category] = Log.DEBUG
        self.default[Log.RTPSensor] = Log.CRITICAL

        # Use the already implemented parts of
        # client profile. Save client profile
        # to separate profile file.
        self.profile = ClientProfile()

        # Use the bridge cache object. Save bridges
        # to separate file
        self.bridgeCache = BridgeCache()

        # Use already implemented parts of
        # node service. Default node service
        # config will get saved using the node
        # service.
        self.nodeConfigs = []
        self.config = UserConfig.instance(initIfNeeded=0)
        self.__bridges = {}  # Stores current bridges to display in UI
        self.LoadPreferences()

        self.venueClient = None