Example #1
0
def create_parser(subparsers):
  """ Create the parse for the update command """
  parser = subparsers.add_parser(
      'update',
      help='Update a topology',
      usage="%(prog)s [options] cluster/[role]/[env] <topology-name> "
      + "--component-parallelism <name:value>",
      add_help=True)

  args.add_titles(parser)
  args.add_cluster_role_env(parser)
  args.add_topology(parser)

  def parallelism_type(value):
    pattern = re.compile(r"^[\w-]+:[\d]+$")
    if not pattern.match(value):
      raise argparse.ArgumentTypeError(
          'Invalid syntax for component parallelism (<component_name>:<value>): %s' % value)
    return value

  parser.add_argument(
      '--component-parallelism',
      action='append',
      type=parallelism_type,
      required=True,
      help='Component name and the new parallelism value '
      + 'colon-delimited: [component_name]:[parallelism]')

  args.add_config(parser)
  args.add_dry_run(parser)
  args.add_service_url(parser)
  args.add_verbose(parser)

  parser.set_defaults(subcommand='update')
  return parser
Example #2
0
def create_parser(subparsers):
    '''
  :param subparsers:
  :return:
  '''
    parser = subparsers.add_parser(
        'restart',
        help='Restart a topology',
        usage=
        "%(prog)s [options] cluster/[role]/[env] <topology-name> [container-id]",
        add_help=False)

    args.add_titles(parser)
    args.add_cluster_role_env(parser)
    args.add_topology(parser)

    parser.add_argument('container-id',
                        nargs='?',
                        type=int,
                        default=-1,
                        help='Identifier of the container to be restarted')

    args.add_config(parser)
    args.add_verbose(parser)

    parser.set_defaults(subcommand='restart')
    return parser
Example #3
0
def create_parser(subparsers):
  '''
  Create a subparser for the submit command
  :param subparsers:
  :return:
  '''
  parser = subparsers.add_parser(
      'submit',
      help='Submit a topology',
      usage="%(prog)s [options] cluster/[role]/[env] " + \
            "topology-file-name topology-class-name [topology-args]",
      add_help=False
  )

  cli_args.add_titles(parser)
  cli_args.add_cluster_role_env(parser)
  cli_args.add_topology_file(parser)
  cli_args.add_topology_class(parser)
  cli_args.add_config(parser)
  cli_args.add_deactive_deploy(parser)
  cli_args.add_system_property(parser)
  cli_args.add_verbose(parser)

  parser.set_defaults(subcommand='submit')
  return parser
Example #4
0
def create_parser(subparsers):
    '''
  Create a subparser for the submit command
  :param subparsers:
  :return:
  '''
    parser = subparsers.add_parser(
        'submit',
        help='Submit a topology',
        usage="%(prog)s [options] cluster/[role]/[env] " + \
              "topology-file-name topology-class-name [topology-args]",
        add_help=True
    )

    cli_args.add_titles(parser)
    cli_args.add_cluster_role_env(parser)
    cli_args.add_topology_file(parser)
    cli_args.add_topology_class(parser)
    cli_args.add_config(parser)
    cli_args.add_deactive_deploy(parser)
    cli_args.add_extra_launch_classpath(parser)
    cli_args.add_system_property(parser)
    cli_args.add_dry_run(parser)
    cli_args.add_verbose(parser)

    parser.set_defaults(subcommand='submit')
    return parser
Example #5
0
def create_parser(subparsers):
  '''
  :param subparsers:
  :return:
  '''
  parser = subparsers.add_parser(
      'restart',
      help='Restart a topology',
      usage="%(prog)s [options] cluster/[role]/[env] <topology-name> [container-id]",
      add_help=True)

  args.add_titles(parser)
  args.add_cluster_role_env(parser)
  args.add_topology(parser)

  parser.add_argument(
      'container-id',
      nargs='?',
      type=int,
      default=-1,
      help='Identifier of the container to be restarted')

  args.add_config(parser)
  args.add_service_url(parser)
  args.add_verbose(parser)

  parser.set_defaults(subcommand='restart')
  return parser
Example #6
0
def create_parser(subparsers):
  """ Create the parse for the update command """
  parser = subparsers.add_parser(
      'update',
      help='Update a topology',
      usage="%(prog)s [options] cluster/[role]/[env] <topology-name> "
      + "--component-parallelism <name:value>",
      add_help=True)

  args.add_titles(parser)
  args.add_cluster_role_env(parser)
  args.add_topology(parser)

  def parallelism_type(value):
    pattern = re.compile(r"^[\w-]+:[\d]+$")
    if not pattern.match(value):
      raise argparse.ArgumentTypeError(
          'Invalid syntax for component parallelism (<component_name>:<value>): %s' % value)
    return value

  parser.add_argument(
      '--component-parallelism',
      action='append',
      type=parallelism_type,
      required=True,
      help='Component name and the new parallelism value '
      + 'colon-delimited: [component_name]:[parallelism]')

  args.add_config(parser)
  args.add_dry_run(parser)
  args.add_verbose(parser)

  parser.set_defaults(subcommand='update')
  return parser
Example #7
0
def create_parser(subparsers):
    """ Create the parse for the update command """
    parser = subparsers.add_parser(
        'update',
        help='Update a topology',
        usage="%(prog)s [options] cluster/[role]/[env] <topology-name> " +
        "[--component-parallelism <name:value>] " +
        "[--runtime-config [component:]<name:value>]",
        add_help=True)

    args.add_titles(parser)
    args.add_cluster_role_env(parser)
    args.add_topology(parser)

    args.add_config(parser)
    args.add_dry_run(parser)
    args.add_service_url(parser)
    args.add_verbose(parser)

    # Special parameters for update command
    def parallelism_type(value):
        pattern = re.compile(r"^[\w\.-]+:[\d]+$")
        if not pattern.match(value):
            raise argparse.ArgumentTypeError(
                "Invalid syntax for component parallelism (<component_name:value>): %s"
                % value)
        return value

    parser.add_argument('--component-parallelism',
                        action='append',
                        type=parallelism_type,
                        required=False,
                        help='Component name and the new parallelism value ' +
                        'colon-delimited: <component_name>:<parallelism>')

    def runtime_config_type(value):
        pattern = re.compile(r"^([\w\.-]+:){1,2}[\w\.-]+$")
        if not pattern.match(value):
            raise argparse.ArgumentTypeError(
                "Invalid syntax for runtime config ([component:]<name:value>): %s"
                % value)
        return value

    parser.add_argument(
        '--runtime-config',
        action='append',
        type=runtime_config_type,
        required=False,
        help='Runtime configurations for topology and components ' +
        'colon-delimited: [component:]<name>:<value>')

    parser.set_defaults(subcommand='update')
    return parser
Example #8
0
def create_parser(subparsers):
  """ Create the parse for the update command """
  parser = subparsers.add_parser(
      'update',
      help='Update a topology',
      usage="%(prog)s [options] cluster/[role]/[env] <topology-name> "
      + "[--component-parallelism <name:value>] "
      + "[--runtime-config [component:]<name:value>]",
      add_help=True)

  args.add_titles(parser)
  args.add_cluster_role_env(parser)
  args.add_topology(parser)

  args.add_config(parser)
  args.add_dry_run(parser)
  args.add_service_url(parser)
  args.add_verbose(parser)

  # Special parameters for update command
  def parallelism_type(value):
    pattern = re.compile(r"^[\w\.-]+:[\d]+$")
    if not pattern.match(value):
      raise argparse.ArgumentTypeError(
          "Invalid syntax for component parallelism (<component_name:value>): %s" % value)
    return value

  parser.add_argument(
      '--component-parallelism',
      action='append',
      type=parallelism_type,
      required=False,
      help='Component name and the new parallelism value '
      + 'colon-delimited: <component_name>:<parallelism>')

  def runtime_config_type(value):
    pattern = re.compile(r"^([\w\.-]+:){1,2}[\w\.-]+$")
    if not pattern.match(value):
      raise argparse.ArgumentTypeError(
          "Invalid syntax for runtime config ([component:]<name:value>): %s"
          % value)
    return value

  parser.add_argument(
      '--runtime-config',
      action='append',
      type=runtime_config_type,
      required=False,
      help='Runtime configurations for topology and components '
      + 'colon-delimited: [component:]<name>:<value>')

  parser.set_defaults(subcommand='update')
  return parser
Example #9
0
def create_parser(subparsers):
    '''
  :param subparsers:
  :return:
  '''
    parser = subparsers.add_parser('version',
                                   help='Print version of heron-cli',
                                   usage="%(prog)s",
                                   add_help=False)

    cli_args.add_titles(parser)

    parser.set_defaults(subcommand='version')
    return parser
Example #10
0
def create_parser(subparsers):
  '''
  :param subparsers:
  :return:
  '''
  parser = subparsers.add_parser(
      'version',
      help='Print version of heron-cli',
      usage="%(prog)s",
      add_help=False)

  cli_args.add_titles(parser)

  parser.set_defaults(subcommand='version')
  return parser
Example #11
0
def create_parser(subparsers, action, help_arg):
    '''
  :param subparsers:
  :param action:
  :param help_arg:
  :return:
  '''
    parser = subparsers.add_parser(
        action,
        help=help_arg,
        usage="%(prog)s [options] cluster/[role]/[env] <topology-name>",
        add_help=True)

    args.add_titles(parser)
    args.add_cluster_role_env(parser)
    args.add_topology(parser)

    args.add_config(parser)
    args.add_verbose(parser)

    parser.set_defaults(subcommand=action)
    return parser
Example #12
0
def create_parser(subparsers, action, help_arg):
  '''
  :param subparsers:
  :param action:
  :param help_arg:
  :return:
  '''
  parser = subparsers.add_parser(
      action,
      help=help_arg,
      usage="%(prog)s [options] cluster/[role]/[env] <topology-name>",
      add_help=False)

  args.add_titles(parser)
  args.add_cluster_role_env(parser)
  args.add_topology(parser)

  args.add_config(parser)
  args.add_verbose(parser)

  parser.set_defaults(subcommand=action)
  return parser
Example #13
0
def create_parser(subparsers):
  '''
  Create a subparser for the standalone command
  :param subparsers:
  :return:
  '''
  parser = subparsers.add_parser(
      'standalone',
      help='Start a standalone Heron cluster',
      add_help=True
  )

  cli_args.add_titles(parser)

  parser_action = parser.add_subparsers()

  parser_cluster = parser_action.add_parser(
      Action.CLUSTER,
      help='Start or stop cluster',
      add_help=True,
      formatter_class=argparse.RawTextHelpFormatter,
  )
  parser_cluster.set_defaults(action=Action.CLUSTER)

  parser_set = parser_action.add_parser(
      Action.SET,
      help='Set configurations for standalone cluster e.g. master or slave nodes',
      add_help=True,
      formatter_class=argparse.RawTextHelpFormatter
  )
  parser_set.set_defaults(action=Action.SET)

  parser_template = parser_action.add_parser(
      Action.TEMPLATE,
      help='Template Heron configurations based on cluster roles',
      add_help=True,
      formatter_class=argparse.RawTextHelpFormatter
  )
  parser_template.set_defaults(action=Action.TEMPLATE)

  parser_cluster.add_argument(
      TYPE,
      type=str,
      choices={Cluster.START, Cluster.STOP},
      help= \
"""
Choices supports the following:
  start     - Start standalone Heron cluster
  stop      - Stop standalone Heron cluster
"""
  )

  parser_template.add_argument(
      TYPE,
      type=str,
      choices={"configs"},
  )

  parser_get = parser_action.add_parser(
      Action.GET,
      help='Get attributes about the standalone cluster',
      add_help=True,
      formatter_class=argparse.RawTextHelpFormatter
  )
  parser_get.set_defaults(action=Action.GET)

  parser_get.add_argument(
      TYPE,
      type=str,
      choices={Get.SERVICE_URL, Get.HERON_TRACKER_URL, Get.HERON_UI_URL},
      help= \
      """
      Choices supports the following:
        service-url         - Get the service url for standalone cluster
        heron-tracker-url   - Get the url for the heron tracker in standalone cluster
        heron-ui-url        - Get the url for the heron ui standalone cluster
      """
  )

  parser_info = parser_action.add_parser(
      Action.INFO,
      help='Get general information about the standalone cluster',
      add_help=True,
      formatter_class=argparse.RawTextHelpFormatter
  )
  parser_info.set_defaults(action=Action.INFO)

  add_additional_args([parser_set, parser_cluster, parser_template, parser_get, parser_info])
  parser.set_defaults(subcommand='standalone')
  return parser
Example #14
0
def create_parser(subparsers):
    '''
  Create a subparser for the standalone command
  :param subparsers:
  :return:
  '''
    parser = subparsers.add_parser('standalone',
                                   help='Start a standalone Heron cluster',
                                   add_help=True)

    cli_args.add_titles(parser)

    parser_action = parser.add_subparsers()

    parser_cluster = parser_action.add_parser(
        Action.CLUSTER,
        help='Start or stop cluster',
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter,
    )
    parser_cluster.set_defaults(action=Action.CLUSTER)

    parser_set = parser_action.add_parser(
        Action.SET,
        help=
        'Set configurations for standalone cluster e.g. master or slave nodes',
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter)
    parser_set.set_defaults(action=Action.SET)

    parser_template = parser_action.add_parser(
        Action.TEMPLATE,
        help='Template Heron configurations based on cluster roles',
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter)
    parser_template.set_defaults(action=Action.TEMPLATE)

    parser_cluster.add_argument(
        TYPE,
        type=str,
        choices={Cluster.START, Cluster.STOP},
        help= \
  """
Choices supports the following:
  start     - Start standalone Heron cluster
  stop      - Stop standalone Heron cluster
"""
    )

    parser_template.add_argument(
        TYPE,
        type=str,
        choices={"configs"},
    )

    parser_get = parser_action.add_parser(
        Action.GET,
        help='Get attributes about the standalone cluster',
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter)
    parser_get.set_defaults(action=Action.GET)

    parser_get.add_argument(
        TYPE,
        type=str,
        choices={Get.SERVICE_URL, Get.HERON_TRACKER_URL, Get.HERON_UI_URL},
        help= \
        """
      Choices supports the following:
        service-url         - Get the service url for standalone cluster
        heron-tracker-url   - Get the url for the heron tracker in standalone cluster
        heron-ui-url        - Get the url for the heron ui standalone cluster
      """
    )

    parser_info = parser_action.add_parser(
        Action.INFO,
        help='Get general information about the standalone cluster',
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter)
    parser_info.set_defaults(action=Action.INFO)

    add_additional_args(
        [parser_set, parser_cluster, parser_template, parser_get, parser_info])
    parser.set_defaults(subcommand='standalone')
    return parser
Example #15
0
def create_parser(subparsers):
    '''
  Create a subparser for the standalone command
  :param subparsers:
  :return:
  '''
    parser = subparsers.add_parser('standalone',
                                   help='Start a standalone Heron cluster',
                                   add_help=True)

    cli_args.add_titles(parser)

    parser_action = parser.add_subparsers()

    parser_cluster = parser_action.add_parser(
        ACTION.CLUSTER,
        help='Start or stop cluster',
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter,
    )
    parser_cluster.set_defaults(action=ACTION.CLUSTER)

    parser_set = parser_action.add_parser(
        ACTION.SET,
        help=
        'Set configurations for standalone cluster e.g. master or slave nodes',
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter)
    parser_set.set_defaults(action=ACTION.SET)

    parser_template = parser_action.add_parser(
        ACTION.TEMPLATE,
        help='Template Heron configurations based on cluster roles',
        add_help=True,
        formatter_class=argparse.RawTextHelpFormatter)
    parser_template.set_defaults(action=ACTION.TEMPLATE)

    parser_cluster.add_argument(
        TYPE,
        type=str,
        choices={CLUSTER.START, CLUSTER.STOP},
        help= \
  """
Choices supports the following:
  start     - Start standalone Heron cluster
  stop      - Stop standalone Heron cluster
"""
    )

    parser_set.add_argument(
        TYPE,
        type=str,
        choices={SET.MASTERS, SET.SLAVES, SET.ZOOKEEPERS},
        help=\
  """
Choices supports the following:
  masters     - Set the hostname/IP for master nodes
  slaves      - Set the hostname/IP for slave nodes
  zookeepers  - Set the hostname/IP for Zookeeper servers
"""
    )

    parser_template.add_argument(
        TYPE,
        type=str,
        choices={"configs"},
    )

    add_additional_args([parser_set, parser_cluster, parser_template])
    parser.set_defaults(subcommand='standalone')
    return parser