Packages

An etcd client built on top of gun and egrpc.

Current section

Files

Jump to
etcdgun src etcdgun_error.erl
Raw

src/etcdgun_error.erl

-module(etcdgun_error).
-export([from_grpc_error/1]).
-export_type([
etcd_error/0,
etcd_error_reason/0
]).
-type etcd_error() :: {etcd_error, Reason :: etcd_error_reason()}.
-type etcd_error_reason() ::
empty_key
| key_not_found
| value_provided
| lease_provided
| too_many_ops
| duplicate_key
| compacted
| future_rev
| no_space
| lease_not_found
| lease_exist
| lease_ttl_too_large
| watch_canceled
| member_exist
| peer_urlexist
| member_not_enough_started
| member_bad_urls
| member_not_found
| member_not_learner
| learner_not_ready
| too_many_learners
| cluster_id_mismatch
| request_too_large
| request_too_many_requests
| root_user_not_exist
| root_role_not_exist
| user_already_exist
| user_empty
| user_not_found
| role_already_exist
| role_not_found
| role_empty
| auth_failed
| permission_not_given
| permission_denied
| role_not_granted
| permission_not_granted
| auth_not_enabled
| invalid_auth_token
| invalid_auth_mgmt
| auth_old_revision
| no_leader
| not_leader
| leader_changed
| not_capable
| stopped
| timeout
| timeout_due_to_leader_fail
| timeout_due_to_connection_lost
| timeout_wait_applied_index
| unhealthy
| corrupt
| not_supported_for_learner
| bad_leader_transferee
| cluster_version_unavailable
| wrong_downgrade_version_format
| invalid_downgrade_target_version
| downgrade_in_process
| no_inflight_downgrade
| canceled
| deadline_exceeded.
from_grpc_error({grpc_error, ErrorName, ErrorDesc} = E) ->
case from_grpc_error_desc({ErrorName, ErrorDesc}) of
unknown -> E;
{etcd_error, _} = EtcdError -> EtcdError
end.
from_grpc_error_desc({invalid_argument, <<"etcdserver: key is not provided">>}) -> {etcd_error, empty_key};
from_grpc_error_desc({invalid_argument, <<"etcdserver: key not found">>}) -> {etcd_error, key_not_found};
from_grpc_error_desc({invalid_argument, <<"etcdserver: value is provided">>}) -> {etcd_error, value_provided};
from_grpc_error_desc({invalid_argument, <<"etcdserver: lease is provided">>}) -> {etcd_error, lease_provided};
from_grpc_error_desc({invalid_argument, <<"etcdserver: too many operations in txn request">>}) -> {etcd_error, too_many_ops};
from_grpc_error_desc({invalid_argument, <<"etcdserver: duplicate key given in txn request">>}) -> {etcd_error, duplicate_key};
from_grpc_error_desc({out_of_range, <<"etcdserver: mvcc: required revision has been compacted">>}) -> {etcd_error, compacted};
from_grpc_error_desc({out_of_range, <<"etcdserver: mvcc: required revision is a future revision">>}) -> {etcd_error, future_rev};
from_grpc_error_desc({resource_exhausted, <<"etcdserver: mvcc: database space exceeded">>}) -> {etcd_error, no_space};
from_grpc_error_desc({not_found, <<"etcdserver: requested lease not found">>}) -> {etcd_error, lease_not_found};
from_grpc_error_desc({failed_precondition, <<"etcdserver: lease already exists">>}) -> {etcd_error, lease_exist};
from_grpc_error_desc({out_of_range, <<"etcdserver: too large lease TTL">>}) -> {etcd_error, lease_ttl_too_large};
from_grpc_error_desc({canceled, <<"etcdserver: watch canceled">>}) -> {etcd_error, watch_canceled};
from_grpc_error_desc({failed_precondition, <<"etcdserver: member ID already exist">>}) -> {etcd_error, member_exist};
from_grpc_error_desc({failed_precondition, <<"etcdserver: Peer URLs already exists">>}) -> {etcd_error, peer_urlexist};
from_grpc_error_desc({failed_precondition, <<"etcdserver: re-configuration failed due to not enough started members">>}) -> {etcd_error, member_not_enough_started};
from_grpc_error_desc({invalid_argument, <<"etcdserver: given member URLs are invalid">>}) -> {etcd_error, member_bad_urls};
from_grpc_error_desc({not_found, <<"etcdserver: member not found">>}) -> {etcd_error, member_not_found};
from_grpc_error_desc({failed_precondition, <<"etcdserver: can only promote a learner member">>}) -> {etcd_error, member_not_learner};
from_grpc_error_desc({failed_precondition, <<"etcdserver: can only promote a learner member which is in sync with leader">>}) -> {etcd_error, learner_not_ready};
from_grpc_error_desc({failed_precondition, <<"etcdserver: too many learner members in cluster">>}) -> {etcd_error, too_many_learners};
from_grpc_error_desc({failed_precondition, <<"etcdserver: cluster ID mismatch">>}) -> {etcd_error, cluster_id_mismatch};
from_grpc_error_desc({invalid_argument, <<"etcdserver: request is too large">>}) -> {etcd_error, request_too_large};
from_grpc_error_desc({resource_exhausted, <<"etcdserver: too many requests">>}) -> {etcd_error, request_too_many_requests};
from_grpc_error_desc({failed_precondition, <<"etcdserver: root user does not exist">>}) -> {etcd_error, root_user_not_exist};
from_grpc_error_desc({failed_precondition, <<"etcdserver: root user does not have root role">>}) -> {etcd_error, root_role_not_exist};
from_grpc_error_desc({failed_precondition, <<"etcdserver: user name already exists">>}) -> {etcd_error, user_already_exist};
from_grpc_error_desc({invalid_argument, <<"etcdserver: user name is empty">>}) -> {etcd_error, user_empty};
from_grpc_error_desc({failed_precondition, <<"etcdserver: user name not found">>}) -> {etcd_error, user_not_found};
from_grpc_error_desc({failed_precondition, <<"etcdserver: role name already exists">>}) -> {etcd_error, role_already_exist};
from_grpc_error_desc({failed_precondition, <<"etcdserver: role name not found">>}) -> {etcd_error, role_not_found};
from_grpc_error_desc({invalid_argument, <<"etcdserver: role name is empty">>}) -> {etcd_error, role_empty};
from_grpc_error_desc({invalid_argument, <<"etcdserver: authentication failed, invalid user ID or password">>}) -> {etcd_error, auth_failed};
from_grpc_error_desc({invalid_argument, <<"etcdserver: permission not given">>}) -> {etcd_error, permission_not_given};
from_grpc_error_desc({permission_denied, <<"etcdserver: permission denied">>}) -> {etcd_error, permission_denied};
from_grpc_error_desc({failed_precondition, <<"etcdserver: role is not granted to the user">>}) -> {etcd_error, role_not_granted};
from_grpc_error_desc({failed_precondition, <<"etcdserver: permission is not granted to the role">>}) -> {etcd_error, permission_not_granted};
from_grpc_error_desc({failed_precondition, <<"etcdserver: authentication is not enabled">>}) -> {etcd_error, auth_not_enabled};
from_grpc_error_desc({unauthenticated, <<"etcdserver: invalid auth token">>}) -> {etcd_error, invalid_auth_token};
from_grpc_error_desc({invalid_argument, <<"etcdserver: invalid auth management">>}) -> {etcd_error, invalid_auth_mgmt};
from_grpc_error_desc({invalid_argument, <<"etcdserver: revision of auth store is old">>}) -> {etcd_error, auth_old_revision};
from_grpc_error_desc({unavailable, <<"etcdserver: no leader">>}) -> {etcd_error, no_leader};
from_grpc_error_desc({failed_precondition, <<"etcdserver: not leader">>}) -> {etcd_error, not_leader};
from_grpc_error_desc({unavailable, <<"etcdserver: leader changed">>}) -> {etcd_error, leader_changed};
from_grpc_error_desc({unavailable, <<"etcdserver: not capable">>}) -> {etcd_error, not_capable};
from_grpc_error_desc({unavailable, <<"etcdserver: server stopped">>}) -> {etcd_error, stopped};
from_grpc_error_desc({unavailable, <<"etcdserver: request timed out">>}) -> {etcd_error, timeout};
from_grpc_error_desc({unavailable, <<"etcdserver: request timed out, possibly due to previous leader failure">>}) -> {etcd_error, timeout_due_to_leader_fail};
from_grpc_error_desc({unavailable, <<"etcdserver: request timed out, possibly due to connection lost">>}) -> {etcd_error, timeout_due_to_connection_lost};
from_grpc_error_desc({unavailable, <<"etcdserver: request timed out, waiting for the applied index took too long">>}) -> {etcd_error, timeout_wait_applied_index};
from_grpc_error_desc({unavailable, <<"etcdserver: unhealthy cluster">>}) -> {etcd_error, unhealthy};
from_grpc_error_desc({data_loss, <<"etcdserver: corrupt cluster">>}) -> {etcd_error, corrupt};
from_grpc_error_desc({unavailable, <<"etcdserver: rpc not supported for learner">>}) -> {etcd_error, not_supported_for_learner};
from_grpc_error_desc({failed_precondition, <<"etcdserver: bad leader transferee">>}) -> {etcd_error, bad_leader_transferee};
from_grpc_error_desc({unavailable, <<"etcdserver: cluster version not found during downgrade">>}) -> {etcd_error, cluster_version_unavailable};
from_grpc_error_desc({invalid_argument, <<"etcdserver: wrong downgrade target version format">>}) -> {etcd_error, wrong_downgrade_version_format};
from_grpc_error_desc({invalid_argument, <<"etcdserver: invalid downgrade target version">>}) -> {etcd_error, invalid_downgrade_target_version};
from_grpc_error_desc({failed_precondition, <<"etcdserver: cluster has a downgrade job in progress">>}) -> {etcd_error, downgrade_in_process};
from_grpc_error_desc({failed_precondition, <<"etcdserver: no inflight downgrade job">>}) -> {etcd_error, no_inflight_downgrade};
from_grpc_error_desc({canceled, <<"etcdserver: request canceled">>}) -> {etcd_error, canceled};
from_grpc_error_desc({deadline_exceeded, <<"etcdserver: context deadline exceeded">>}) -> {etcd_error, deadline_exceeded};
from_grpc_error_desc(_) -> unknown.