blob: d72dc5ba7be3d0b637b8a8cf27532ff109e5f62f [file] [log] [blame] [view]
scctl
========
`scctl` is a command line client for service center(version 1.1.0+).
## Global options
- `addr` the http host and port of service center, can be overrode by env `HOSTING_SERVER_IP`.
- `ca` the CA file path to access service center, can be overrode by `$SSL_ROOT`/trust.cer.
- `cert` the certificate file path to access service center, can be overrode by `$SSL_ROOT`/server.cer.
- `key` the key file path to access service center, can be overrode by `$SSL_ROOT`/server_key.pem.
- `pass` the passphase string to decrypt key file.
- `pass-file` the passphase file path to decrypt key file, can be overrode by `$SSL_ROOT`/cert_pwd.
- `timeout` the maximum time allowed for the request.
## Get commands
The `get` command is the root command for getting any type resources from service center.
### service [options]
Get the microservices list from service center. `service` command can be instead of `svc`.
#### Options
- `domain`(d) print the information under the specified domain in service center, print under the `default` domain by default.
- `output`(o) support mode `wide`, output the complete microservices information(e.g., framework, endpoints).
- `all-domains` print the information under all domains in service center.
#### Examples
```bash
./scctl get svc
# NAME | APPID | VERSIONS | ENV | FRAMEWORK | AGE
# +---------------+-----------+----------+-------------+----------------------------------------+-----+
# SERVICECENTER | default | 0.0.1 | development | | 9d
# Client | springmvc | 1.0.0 | | | 9d
# consumer | springmvc | 0.0.1 | | servicecomb-java-chassis-CSE:2.3.35... | 9d
# provider | springmvc | 0.0.1 | | servicecomb-java-chassis-CSE:2.3.35... | 9d
./scctl get svc -owide
# DOMAIN | NAME | APPID | VERSIONS | ENV | FRAMEWORK | ENDPOINTS | AGE
# +---------+---------------+-----------+----------+-------------+------------------------------------------------------------+-------------------------+-----+
# default | Client | springmvc | 1.0.0 | | | | 9d
# default | consumer | springmvc | 0.0.1 | | servicecomb-java-chassis-CSE:2.3.35;ServiceComb:1.1.0.B006 | | 9d
# default | provider | springmvc | 0.0.1 | | servicecomb-java-chassis-CSE:2.3.35;ServiceComb:1.1.0.B006 | | 9d
# default | SERVICECENTER | default | 0.0.1 | development | | rest://127.0.0.1:30100/ | 9d
./scctl get svc -d test
# NAME | APPID | VERSIONS | ENV | FRAMEWORK | AGE
# +--------+---------+-------------+-----+-----------+-----+
# Server | default | 1.0.0,1.0.1 | | | 1d
```
### instance [options]
Get the instances list from service center. `instance` command can be instead of `inst`.
#### Options
- `domain`(d) domain name, return `default` domain microservices list by default.
- `output`(o) support mode `wide`, return the complete microservices information(e.g., framework, endpoints).
- `all-domains` return all domains microservices information.
#### Examples
```bash
./scctl get inst
# HOST | ENDPOINTS | VERSION | SERVICE | APPID | LEASE | AGE
# +--------------+-------------------------+---------+---------------+---------+-------+-----+
# desktop-0001 | rest://127.0.0.1:30100/ | 0.0.1 | SERVICECENTER | default | 2m | 11m
./scctl get inst -owide
# DOMAIN | HOST | ENDPOINTS | VERSION | SERVICE | APPID | ENV | FRAMEWORK | LEASE | AGE
# +---------+--------------+-------------------------+---------+---------------+---------+-------------+-----------+-------+-----+
# default | desktop-0001 | rest://127.0.0.1:30100/ | 0.0.1 | SERVICECENTER | default | development | | 2m | 17m
./scctl get inst -d default
# HOST | ENDPOINTS | VERSION | SERVICE | APPID | LEASE | AGE
# +--------------+-------------------------+---------+---------------+---------+-------+-----+
# desktop-0001 | rest://127.0.0.1:30100/ | 0.0.1 | SERVICECENTER | default | 2m | 18m
```
### schema [options]
Get the schemas content from service center.
#### Options
- `domain`(d) domain name, return all microservice schema contents from `default` domain by default.
- `app` the application name of microservice.
- `name` the name of microservice.
- `version` the semantic version of microservice.
- `save-dir`(s) the directory to save the schema content,
the schema file path structure follows the rule:
`{save-dir}/schemas/[{domain}/][{project}/][{env}/]{app}/{microservice}.{version}/{schemaId}.yaml`
- `all-domains` return all microservice schema contents from all domains.
#### Examples
```bash
# save schemas to files
./scctl get schema -s .
# 2 / 2 [============================================================] 100.00% 0s
# Finished.
ls -l schemas/springmvc/provider.v0.0.1
# total 4
# -rw-r----- 1 ubuntu ubuntu 610 Sep 15 23:05 say.yaml
# print schema to console
./scctl get schema --name provider
# ---
# swagger: "2.0"
# info:
# version: "1.0.0"
# title: "swagger definition for com.service.provider.controller.ProviderImpl"
# x-java-interface: "cse.gen.springmvc.provider.provider.ProviderImplIntf"
# basePath: "/say"
# consumes:
# - "application/json"
# produces:
# - "application/json"
# paths:
# /helloworld:
# get:
# operationId: "helloworld"
# produces:
# - "application/json"
# parameters:
# - name: "name"
# in: "query"
# required: false
# type: "string"
# responses:
# 200:
# description: "response of 200"
# schema:
# type: "string"
```
### cluster [options]
Get the registry clusters managed by service center.
#### Examples
```bash
./scctl get cluster
# CLUSTER | ENDPOINTS
# +---------+-------------------------+
# sc-1 | http://172.0.1.32:30100
# sc-0 | http://172.0.1.29:30100
```
## Diagnose commands
The `diagnose` command can output the service center health report.
If the service center is isolated from etcd, the diagnosis will print wrong information.
#### Options
- `etcd-addr` the http addr and port of etcd endpoints
- `etcd-ca` the CA file path to access etcd, can be overrode by env `$SSL_ROOT`/trust.cer.
- `etcd-cert` the certificate file path to access etcd, can be overrode by env `$SSL_ROOT`/server.cer.
- `etcd-key` the key file path to access etcd, can be overrode by env `$SSL_ROOT`/server_key.pem.
- `etcd-pass` the passphase string to decrypt key file.
- `etcd-pass-file` the passphase file path to decrypt key file, can be overrode by env `$SSL_ROOT`/cert_pwd.
#### Examples
```bash
./scctl diagnose
echo exit $?
# exit 0
./scctl diagnose
echo exit $?
# 1. found in etcd but not in cache, details:
# service: [springmvc/Client/1.0.0 springmvc/consumer/0.0.1 springmvc/provider/0.0.1 default/SERVICECENTER/0.0.1 default/Server/1.0.0 default/Server/1.0.1]
# instance: [[rest://127.0.0.1:30100/]]
# error: 1. found in etcd but not in cache
# exit 1
```
## Health Check commands
The `health` command can check the service center health.
#### Exit codes
- `0` the service center is healthy.
- `1` an internal error occurred in scctl.
- `2` the service center is unavailable.
- `3` the service center is abnormal.
#### Examples
```bash
./scctl health
# Registry service is unavailable(invoke request failed: Get http://127.0.0.1:30100/v4/default/registry/health: dial tcp 127.0.0.1:30100: getsockopt: connection refused)
echo exit $?
# exit 2
```