pip-clients-clusters-node
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Pip.Services Logo
Clusters Microservice Client SDK for Node.js

Quick Links:

This is a Node.js client SDK for pip-services-clusters microservice.

It provides an easy to use abstraction over communication protocols:

  • Direct client for monolythic deployments
  • Http client
  • Lambda client for AWS
  • Memory client
  • Proxy http client
  • Null client to be used in testing

Install

Add dependency to the client SDK into package.json file of your project

{
    ...
    "dependencies"{
        ....
        "pip-clients-clusters-node""^1.0.*",
        ...
    }
}

Then install the dependency using npm tool

# Install new dependencies 
npm install
 
# Update already installed dependencies 
npm update

Use

Inside your code get the reference to the client SDK

 import { ClustersHttpClientV1 } from 'pip-clients-clusters-node';

Define client configuration parameters.

// Client configuration
var httpConfig = ConfigParams.fromTuples(
    "connection.protocol", "http",
    "connection.host", "localhost",
    "connection.port", 3000
);
client.configure(httpConfig);

Instantiate the client and open connection to the microservice

// Create the client instance
client = new ClustersHttpClientV1();
 
// Connect to the microservice
client.open(null, function(err) {
    if (err) {
        console.error('Connection to the microservice failed');
        console.error(err);
        return;
    }
    
    // Work with the microservice
    ...
});

Now the client is ready to perform operations:

Create new cluster:

let CLUSTER1: ClusterV1 = {
    id: '1',
    name: 'Cluster #1',
    type: 'root',
    active: true,
    api_host: 'api.mycluster1.com',
    service_ports: { myservice1: 30001, myservice2: 30002 },
    max_tenant_count: 1,
    tenants_count: 1,
    active_tenants: ['1']
};   
 
    client.createCluster("123", CLUSTER1, (err, cluster){
        if (err != null) {
            console.error('Can\'t create cluster!');
            console.error(err);
        } else {
            console.dir('Cluster was created successfull');
        }
    });

Update exists cluster:

    CLUSTER1.name = "Cluster #2";
    client.updateCluster("123", CLUSTER1, (err, cluster){
        if (err != null) {
            console.error('Can\'t update cluster!');
            console.error(err);
        } else {
            console.dir('Cluster was updated successfull');
        }
    });

Delete existing cluster by cluster_id

    client.deleteClusterById("123", 1, (err, cluster){
        if (err != null) {
            console.error('Can\'t delete cluster!');
            console.error(err);
        } else {
            console.dir('Cluster was delete successfull');
            console.dir('Deleted cluster:');
            console.dir(cluster.toString());
        }
    });

Add new tenant into active cluster

    client.addTenant("123", "5", (err, cluster) {
        if (err != null) {
            console.error('Can\'t add tenant to cluster!');
            console.error(err);
        } else {
            console.dir('Tenant was added successfull');
            console.dir('Cluster:');
            console.dir(cluster.toString());
        }
    });

Remove existing tenant by tenantId

    client.removeTenant("123", "5", (err, cluster) {
        if (err != null) {
            console.error('Can\'t delete tenant from cluster!');
            console.error(err);
        } else {
            console.dir('Tenant was deleted successfull');
            console.dir('Cluster:');
            console.dir(cluster.toString());
        }
    });

Get list of all clusters:

    let filter = FilterParams.fromTuples(
        'active', true,
        'open', true
    );
    client.getClusters("123", filter, new PagingParams(), (err, clusters){
        if (err != null) {
            console.error('Can\'t find cluster by filter!');
            console.error(err);
        } else {
            console.dir("Cluster list length:");
            console.dir(clusters.data.length);
        }
    });

Get cluster by cluster_id:

    client.getClusterById("123", "1", (err, cluster){
         if (err != null) {
            console.error('Can\'t find cluster by cluster id!');
            console.error(err);
        } else {
            console.dir('Cluster was finded successfull');
            console.dir('Cluster:');
            console.dir(cluster.toString());
        }
    });

Get cluster by tenant:

    client.getClusterByTenant("123", "5", (err, cluster){
        if (err != null) {
            console.error('Can\'t find cluster by tenant id!');
            console.error(err);
        } else {
            console.dir('Cluster was finded successfull');
            console.dir('Cluster:');
            console.dir(cluster.toString());
        }
    });

Acknowledgements

This client SDK was created and currently maintained by Sergey Seroukhov.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.0
    10
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.0
    10

Package Sidebar

Install

npm i pip-clients-clusters-node

Weekly Downloads

10

Version

1.0.0

License

MIT

Unpacked Size

170 kB

Total Files

115

Last publish

Collaborators

  • pipdeveloper