Пример #1
0
def _build(args):
  if args.owl_ip == '127.0.0.1' or args.owl_port == 0:
    Log.print_critical("ERROR: Building owl needs to specify the localhost ip " \
      "with '--owl_ip' and the owl monitor http port with '--owl_port'")

  Log.print_info("Building owl")
  # Check and install prerequisite python libraries
  Log.print_info("Check and install prerequisite python libraries")
  build_utils.check_and_install_modules(OWL_PREREQUISITE_PYTHON_LIBS)

  check_third_party_tool_exists("gnuplot")
  check_third_party_tool_exists("mysql")
  create_and_configure_mysql_for_owl(args)
  create_django_database()

  # Deploy hbase
  if not args.skip_setup_hbase:
    build_hbase()
    start_hbase()

  # Deploy opentsdb
  deploy_opentsdb()
  if not args.skip_setup_hbase:
    start_opentsdb()

  # Configure opentsdb collector
  configure_opentsdb_collector(str(args.owl_port))
  # Configure owl config
  configure_owl_config(args)

  # Output build information
  build_utils.output_build_info(args.component, 'owl_port', args.owl_port)
  build_utils.output_build_info(args.component, 'build_status', 'success')
  Log.print_info("The component %s is built successfully" % args.component)
Пример #2
0
def _build(args):
    if args.tank_ip == TANK_DEFAULT_IP:
        Log.print_critical("ERROR: Building supervisor needs to specify the package server " \
          "with '--tank_ip' and '--tank_port'")

    Log.print_info("Building supervisor")
    # Check and install prerequisite python libraries
    Log.print_info("Check and install prerequisite python libraries")
    build_utils.check_and_install_modules(SUPERVISOR_PREREQUISITE_PYTHON_LIBS)

    # Create deployment directory
    deploy_path = raw_input("Please input the root directory to deploy services " \
      "(default: /home/%s): " % getpass.getuser())

    if deploy_path:
        deploy_path = os.path.abspath(os.path.realpath(deploy_path))
    else:
        deploy_path = "/home/%s" % getpass.getuser()
    _create_deployment_directory(deploy_path)

    # Deploy supervisor
    _deploy_supervisor(args, deploy_path)

    # Output build information
    build_utils.output_build_info(args.component, 'build_status', 'success')
    Log.print_info("The component %s is built successfully" % args.component)
Пример #3
0
def _build(args):
    if args.owl_ip == '127.0.0.1' or args.owl_port == 0:
        Log.print_critical("ERROR: Building owl needs to specify the localhost ip " \
          "with '--owl_ip' and the owl monitor http port with '--owl_port'")

    Log.print_info("Building owl")
    # Check and install prerequisite python libraries
    Log.print_info("Check and install prerequisite python libraries")
    build_utils.check_and_install_modules(OWL_PREREQUISITE_PYTHON_LIBS)

    check_third_party_tool_exists("gnuplot")
    check_third_party_tool_exists("mysql")
    create_and_configure_mysql_for_owl(args)
    create_django_database()

    # Deploy hbase
    if not args.skip_setup_hbase:
        build_hbase()
        start_hbase()

    # Deploy opentsdb
    deploy_opentsdb()
    if not args.skip_setup_hbase:
        start_opentsdb()

    # Configure opentsdb collector
    configure_opentsdb_collector(str(args.owl_port))
    # Configure owl config
    configure_owl_config(args)

    # Output build information
    build_utils.output_build_info(args.component, 'owl_port', args.owl_port)
    build_utils.output_build_info(args.component, 'build_status', 'success')
    Log.print_info("The component %s is built successfully" % args.component)
Пример #4
0
def create_hbase_table():
  if build_utils.get_build_info_option('owl', 'hbase_table') == 'created':
    return
  os.chdir(OPENTSDB_ROOT)
  log_message = "Creating hbase table for opentsdb in %s" % OPENTSDB_ROOT
  cmd = ["env", "COMPRESSION=NONE", "HBASE_HOME=%s" % HBASE_ROOT, "./src/create_table.sh"]
  build_utils.execute_command(cmd, log_message=log_message)
  os.chdir(MINOS_ROOT)

  # Mark hbase table created
  build_utils.output_build_info('owl', 'hbase_table', 'created')
Пример #5
0
def create_hbase_table():
    if build_utils.get_build_info_option('owl', 'hbase_table') == 'created':
        return
    os.chdir(OPENTSDB_ROOT)
    log_message = "Creating hbase table for opentsdb in %s" % OPENTSDB_ROOT
    cmd = [
        "env", "COMPRESSION=NONE",
        "HBASE_HOME=%s" % HBASE_ROOT, "./src/create_table.sh"
    ]
    build_utils.execute_command(cmd, log_message=log_message)
    os.chdir(MINOS_ROOT)

    # Mark hbase table created
    build_utils.output_build_info('owl', 'hbase_table', 'created')
Пример #6
0
def create_and_configure_mysql_for_owl(args):
    if build_utils.get_build_info_option('owl', 'mysql') == 'created':
        return
    # Support both local and remote database
    choice = raw_input("Please choose Mysql server you want to use " \
      "(1 for Local, 2 for Remote): ")
    owl_prefix = raw_input("Please enter the prefix of your owl database name " \
      "(default: %s): " % getpass.getuser())
    if not owl_prefix:
        owl_prefix = getpass.getuser()
    database_name = "%s_owl" % owl_prefix

    # Using local mysql
    if int(choice) == 1:
        # Check mysql server is running
        cmd = 'ps -ef | grep mysqld | grep -v grep'
        error_message = "Please start mysql server firstly"
        build_utils.check_command_output(cmd, error_message=error_message)
        # Create owl database
        create_owl_database(args, database_name)
        # Configure mysql for owl
        configure_mysql_for_owl(database_name)

    # Using remote mysql
    elif int(choice) == 2:
        remote_address = raw_input("Please input the remote mysql " \
          "server's address (ip:port): ")
        remote_host, remote_port = remote_address.split(":")
        # Create owl database
        create_owl_database(args,
                            database_name,
                            host=remote_host,
                            port=remote_port)
        # Configure mysql for owl
        configure_mysql_for_owl(database_name, remote_host, remote_port)
    else:
        Log.print_critical("ERROR: invalid choice")

    # Mark mysql database created
    build_utils.output_build_info('owl', 'mysql', 'created')
Пример #7
0
def build_hbase():
  if build_utils.get_build_info_option('owl', 'hbase') == 'built':
    return

  if not os.path.exists(BUILD_DOWNLOAD_ROOT):
    os.mkdir(BUILD_DOWNLOAD_ROOT)
  os.chdir(BUILD_DOWNLOAD_ROOT)

  log_message = "Setup hbase in %s" % BUILD_DOWNLOAD_ROOT
  if not os.path.exists(os.path.basename(HBASE_TARBALL)):
    cmd = ["wget", "%s" % HBASE_TARBALL]
    build_utils.execute_command(cmd, log_message=log_message)

  if not os.path.exists(HBASE_ROOT):
    cmd = ["tar", "xfz", "%s" % os.path.basename(HBASE_TARBALL)]
    build_utils.execute_command(cmd)

  generate_hbase_configuration()
  os.chdir(MINOS_ROOT)

  # Mark hbase built
  build_utils.output_build_info('owl', 'hbase', 'built')
Пример #8
0
def build_hbase():
    if build_utils.get_build_info_option('owl', 'hbase') == 'built':
        return

    if not os.path.exists(BUILD_DOWNLOAD_ROOT):
        os.mkdir(BUILD_DOWNLOAD_ROOT)
    os.chdir(BUILD_DOWNLOAD_ROOT)

    log_message = "Setup hbase in %s" % BUILD_DOWNLOAD_ROOT
    if not os.path.exists(os.path.basename(HBASE_TARBALL)):
        cmd = ["wget", "%s" % HBASE_TARBALL]
        build_utils.execute_command(cmd, log_message=log_message)

    if not os.path.exists(HBASE_ROOT):
        cmd = ["tar", "xfz", "%s" % os.path.basename(HBASE_TARBALL)]
        build_utils.execute_command(cmd)

    generate_hbase_configuration()
    os.chdir(MINOS_ROOT)

    # Mark hbase built
    build_utils.output_build_info('owl', 'hbase', 'built')
Пример #9
0
def create_and_configure_mysql_for_owl(args):
  if build_utils.get_build_info_option('owl', 'mysql') == 'created':
    return
  # Support both local and remote database
  choice = raw_input("Please choose Mysql server you want to use " \
    "(1 for Local, 2 for Remote): ")
  owl_prefix = raw_input("Please enter the prefix of your owl database name " \
    "(default: %s): " % getpass.getuser())
  if not owl_prefix:
    owl_prefix = getpass.getuser()
  database_name = "%s_owl" % owl_prefix

  # Using local mysql
  if int(choice) == 1:
    # Check mysql server is running
    cmd = 'ps -ef | grep mysqld | grep -v grep'
    error_message = "Please start mysql server firstly"
    build_utils.check_command_output(cmd, error_message=error_message)
    # Create owl database
    create_owl_database(args, database_name)
    # Configure mysql for owl
    configure_mysql_for_owl(database_name)

  # Using remote mysql
  elif int(choice) == 2:
    remote_address = raw_input("Please input the remote mysql " \
      "server's address (ip:port): ")
    remote_host, remote_port = remote_address.split(":")
    # Create owl database
    create_owl_database(args, database_name, host=remote_host, port=remote_port)
    # Configure mysql for owl
    configure_mysql_for_owl(database_name, remote_host, remote_port)
  else:
    Log.print_critical("ERROR: invalid choice")

  # Mark mysql database created
  build_utils.output_build_info('owl', 'mysql', 'created')
Пример #10
0
def _build(args):
  Log.print_info("Building tank server")

  # Check and install prerequisite python libraries
  Log.print_info("Check and install prerequisite python libraries")
  build_utils.check_and_install_modules(TANK_PREREQUISITE_PYTHON_LIBS)

  # Output build information
  if args.tank_ip != TANK_DEFAULT_IP or args.tank_port != TANK_DEFAULT_PORT:
    build_utils.output_build_info(args.component, 'tank_ip', args.tank_ip)
    build_utils.output_build_info(args.component, 'tank_port', args.tank_port)

  build_utils.output_build_info(args.component, 'build_status', 'success')
  Log.print_info("The component %s is built successfully" % args.component)
Пример #11
0
def _build(args):
    Log.print_info("Building tank server")

    # Check and install prerequisite python libraries
    Log.print_info("Check and install prerequisite python libraries")
    build_utils.check_and_install_modules(TANK_PREREQUISITE_PYTHON_LIBS)

    # Output build information
    if args.tank_ip != TANK_DEFAULT_IP or args.tank_port != TANK_DEFAULT_PORT:
        build_utils.output_build_info(args.component, 'tank_ip', args.tank_ip)
        build_utils.output_build_info(args.component, 'tank_port',
                                      args.tank_port)

    build_utils.output_build_info(args.component, 'build_status', 'success')
    Log.print_info("The component %s is built successfully" % args.component)