# Copyright 2012 Citrix Systems, Inc. Licensed under the
# Apache License, Version 2.0 (the "License"); you may not use this
# file except in compliance with the License.  Citrix Systems, Inc.
# reserves all rights not expressly granted by the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 
# Automatically generated by addcopyright.py at 04/03/2012
class globalEnv:
    def __init__(self):
        #Agent/Server/Db
        self.mode = None
        #server mode: normal/mycloud
        self.svrMode = None
        #myCloud/Agent/Console
        self.agentMode = None
        #debug
        self.debug = False
        #management server IP
        self.mgtSvr = "myagent.cloud.com"
        #zone id or zone name
        self.zone = None
        #pod id or pod name
        self.pod = None
        #cluster id or cluster name
        self.cluster = None
        #nics: 0: private nic, 1: guest nic, 2: public nic used by agent
        self.nics = []
        #uuid
        self.uuid = None
        #default private network
        self.privateNet = "cloudbr0"
        #distribution
        self.distribution = None
