Net-Etcd

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

NAME
    Net::Etcd - etcd v3 REST API.

SYNOPSIS
        Etcd v3.1.0 or greater is required.   To use the v3 API make sure to set environment
        variable ETCDCTL_API=3.  Precompiled binaries can be downloaded at https://github.com/coreos/etcd/releases.

        $etcd = Net::Etcd->new(); # host: 127.0.0.1 port: 2379
        $etcd = Net::Etcd->new({ host => $host, port => $port, ssl => 1 });

        # put key
        $put_key = $etcd->put({ key =>'foo1', value => 'bar' });

        # check for success of a transaction
        $put_key->is_success;

        # get single key
        $key = $etcd->range({ key =>'test0' });

        # return single key value or the first in a list.
        $key->get_value

        # get range of keys
        $range = $etcd->range({ key =>'test0', range_end => 'test100' });

        # return array { key => value } pairs from range request.
        my @users = $range->all

        # delete single key
        $etcd->deleterange({ key => 'test0' });

        # watch key range, streaming.
        $watch = $etcd->watch( { key => 'foo', range_end => 'fop'}, sub {
            my ($result) =  @_;
            print STDERR Dumper($result);
        })->create;

        # create/grant 20 second lease
        $etcd->lease( { ID => 7587821338341002662, TTL => 20 } )->grant;

        # attach lease to put
        $etcd->put( { key => 'foo2', value => 'bar2', lease => 7587821338341002662 } );

        # add new user
        $etcd->user( { name => 'samba', password => 'foo' } )->add;

        # add new user role
        $role = $etcd->role( { name => 'myrole' } )->add;

        # grant read permission for the foo key to myrole
        $etcd->role_perm( { name => 'myrole', key => 'foo', permType => 'READWRITE' } )->grant;

        # grant role
        $etcd->user_role( { user => 'samba', role => 'myrole' } )->grant;

        # defrag member's backend database
        $defrag = $etcd->maintenance()->defragment;
        print "Defrag request complete!" if $defrag->is_success;

        # member version
        $v = $etcd->version;

        # list members
        $etcd->member()->list;

DESCRIPTION
    Net::Etcd is object oriented interface to the v3 REST API provided by
    the etcd grpc-gateway <https://github.com/grpc-ecosystem/grpc-gateway>.

ACCESSORS
  host
    The etcd host. Defaults to 127.0.0.1

  port
    Default 2379.

  name
    Username for authentication, defaults to $ENV{ETCD_CLIENT_USERNAME}

  password
    Authentication credentials, defaults to $ENV{ETCD_CLIENT_PASSWORD}

  ca_file
    Path to ca_file, defaults to $ENV{ETCD_CLIENT_CA_FILE}

  key_file
    Path to key_file, defaults to $ENV{ETCD_CLIENT_KEY_FILE}

  cert_file
    Path to cert_file, defaults to $ENV{ETCD_CLIENT_CERT_FILE}

  cacert



( run in 0.559 second using v1.01-cache-2.11-cpan-39bf76dae61 )