Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloudtower Node Sdk

typescript 编写的 Cloudtower SDK。

安装

npm install cloudtower-node-sdk

使用

创建Client并鉴权

import { CloudTowerClient, UserSource } from "cloudtower-node-sdk";

const client = new CloudTowerClient(
  {
    username: "username",
    password: "password",
    source: UserSource.LOCAL,
  },
  {
    baseURL: "http://<path-to-tower>/v2/api",
  },
);

创建实例并请求

const api = new VmApi(client);
const data = await api.getVms({
  first: 10,
});
console.log(data);

创建 ActivePassiveClient 实例

CloudTower 在 4.9.0 引入了多管理 IP 主备部署,如果需要访问此类 CloudTower,可以使用 ActivePassiveClient 配置同一个主备集群的多个 endpoint。同一时间预期最多只有一个 active endpoint,传入顺序不代表主备关系,客户端会通过探测结果选择当前 active endpoint。

import { ActivePassiveClient, UserSource } from "cloudtower-node-sdk";

const client = new ActivePassiveClient(
  {
    username: "username",
    password: "password",
    source: UserSource.LOCAL,
  },
  {
    endpoints: ["https://tower-a.example.com", "https://tower-b.example.com"],
  },
);

故障切换策略

ActivePassiveClient 支持以下故障切换策略:

  • AUTO_FAILOVER:默认的策略,当没有缓存的 active endpoint 时,会尝试探测并缓存当前 active endpoint;请求返回 307 后自动重新探测并重试一次;请求发生网络 I/O 异常后清空缓存,但不会自动重试。
  • MANUAL_FAILOVER:请求返回 307 后不自动重新探测和重试,清空缓存由调用方处理故障切换,其余业务逻辑和 AUTO_FAILOVER 一致。
  • ALWAYS_PROBE:不缓存 active endpoint,每次请求前都重新探测 active endpoint;请求返回 307 后不自动重试。

如果需要指定故障切换策略,可以在创建实例时传入:

import {
  ActivePassiveClient,
  UserSource,
  ActivePassiveFailoverStrategy,
} from "cloudtower-node-sdk";

const client = new ActivePassiveClient(
  {
    username: "username",
    password: "password",
    source: UserSource.LOCAL,
  },
  {
    endpoints: ["https://tower-a.example.com", "https://tower-b.example.com"],
    failoverStrategy: ActivePassiveFailoverStrategy.ManualFailover,
  },
);

About

cloudtower sdk based on typescript

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages