text: #!/usr/bin/python
  
  # Copyright (c) 2015,  BROCADE COMMUNICATIONS SYSTEMS, INC
  
  # All rights reserved.
  
  # Redistribution and use in source and binary forms, with or without
  # modification, are permitted provided that the following conditions are met:
  
  # 1. Redistributions of source code must retain the above copyright notice,
  # this list of conditions and the following disclaimer.
  
  # 2. Redistributions in binary form must reproduce the above copyright notice,
  # this list of conditions and the following disclaimer in the documentation
  # and/or other materials provided with the distribution.
  
  # 3. Neither the name of the copyright holder nor the names of its
  # contributors may be used to endorse or promote products derived from this
  # software without specific prior written permission.
  
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
  # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  # THE POSSIBILITY OF SUCH DAMAGE.
  
  """
  
  @authors: Sergei Garbuzov
  @status: Development
  @version: 1.1.0
  
  
  """
  
  import time
  import json
  
  from pysdn.controller.controller import Controller
  from pysdn.common.status import STATUS
  from pysdn.common.utils import load_dict_from_file
  
  
  def nc_demo_7():
  
      f = "cfg1.yml"
      d = {}
      if(load_dict_from_file(f, d) is False):
          print("Config file '%s' read error: " % f)
          exit()
  
      try:
          ctrlIpAddr = d['ctrlIpAddr']
          ctrlPortNum = d['ctrlPortNum']
          ctrlUname = d['ctrlUname']
          ctrlPswd = d['ctrlPswd']
          rundelay = d['rundelay']
      except:
          print ("Failed to get Controller device attributes")
          exit(0)
  
      print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
      print ("<<< Demo Start")
      print ("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<")
  
      print ("\n")
      print ("<<< Creating Controller instance")
      time.sleep(rundelay)
      ctrl = Controller(ctrlIpAddr, ctrlPortNum, ctrlUname, ctrlPswd)
      print ("'Controller':")
      print ctrl.to_json()
  
      print "\n"
      print ("<<< Show a particular configuration module on the Controller")
      moduleType = "opendaylight-rest-connector:rest-connector-impl"
      moduleName = "rest-connector-default-impl"
      print ("    (module type: %s,\n     module name: %s)"
             % (moduleType, moduleName))
      time.sleep(rundelay)
      result = ctrl.get_module_operational_state(moduleType, moduleName)
      status = result.get_status()
      if(status.eq(STATUS.OK)):
          print "Module:"
          slist = result.get_data()
          print json.dumps(slist, default=lambda o: o.__dict__,
                           sort_keys=True, indent=4)
      else:
          print ("\n")
          print ("!!!Demo terminated, reason: %s" % status.brief())
          exit(0)
  
      print ("\n")
      print (">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
      print (">>> Demo End")
      print (">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
  
  
  if __name__ == "__main__":
      nc_demo_7()
  