Mav - You're not using the correct HTTP URL. You can use this command:
http://docs.basho.com/riak/kv/2.1.4/using/reference/bucket-types/#updating-a-bucket-type Or this URL: curl -XPUT localhost:8098/types/maps/props -H 'Content-Type: application/json' -d '{"props":{"precommit":[{"mod":"myhooks","fun":"precommit_hook"}]}}' Please ensure that the "myhooks" beam file is on all Riak servers in a directory that will be picked up by Riak when it starts: http://docs.basho.com/riak/kv/2.1.4/using/reference/custom-code/ -- Luke Bakken Engineer lbak...@basho.com On Fri, Nov 18, 2016 at 1:36 PM, Mav erick <mav4...@gmail.com> wrote: > Hi Luke > > I tried that and didn't work for a bucket with bucket type = maps. My erlang > code below does work for buckets without types. > > But I think its because I didn't set the hook for the typed bucket > correctly.Could you check my curl below, please ? > > I did this to set the hook > curl -X PUT localhost:8098/riak/types/maps -H 'Content-Type: > application/json' -d > '{"props":{"precommit":[{"mod":"myhooks","fun":"precommit_hook"}]}}' > > That returns 204, but when I get the props ... > curl http://localhost:8098/types/maps/props > { > "props": { > "active": true, > "allow_mult": true, > "basic_quorum": false, > "big_vclock": 50, > "chash_keyfun": { > "fun": "chash_std_keyfun", > "mod": "riak_core_util" > }, > "claimant": "riak@10.243.44.165", > "datatype": "map", > "dvv_enabled": true, > "dw": "quorum", > "last_write_wins": false, > "linkfun": { > "fun": "mapreduce_linkfun", > "mod": "riak_kv_wm_link_walker" > }, > "n_val": 3, > "notfound_ok": true, > "old_vclock": 86400, > "postcommit": [], > "pr": 0, > "precommit": [], > "pw": 0, > "r": "quorum", > "rw": "quorum", > "small_vclock": 50, > "w": "quorum", > "young_vclock": 20 > } > } > > The hook code is ... > > precommit_hook(Object) -> > case riak_object:bucket(Object) of > {BucketType, Bucket} -> Bstr = binary_to_list(Bucket), Btstr = > binary_to_list(BucketType); > Bucket -> Bstr = binary_to_list(Bucket), Btstr = <<"">> > end, > K = riak_object:key(Object), > Kstr = binary_to_list(K), > lager:info("MyHook Bucket type ~s, bucket ~s, key ~s [Btstr, Bstr, > Kstr]), > Object. > > > On 18 November 2016 at 14:15, Luke Bakken <lbak...@basho.com> wrote: >> >> Mav - >> >> Please remember to use "Reply All" so that the riak-users list can >> learn from what you find out. Thanks. >> >> Thebucket = riak_object:bucket(Object), >> >> Can you check to see if "Thebucket" is really a two-tuple of >> "{BucketType, Bucket}"? I believe that is what is returned. >> >> -- >> Luke Bakken >> Engineer >> lbak...@basho.com >> >> On Fri, Nov 18, 2016 at 10:54 AM, Mav erick <mav4...@gmail.com> wrote: >> > I have some initializing to do - like connecting to a notification >> > server, >> > before I can use the commit hook. But I think I have figured that out >> > now >> > that I learnt about supervisors and OTP >> > >> > I have one other question though ... >> > How do I get the bucket type of the bucket of the key that was committed >> > ? >> > >> > I am using these to get the key and bucket names. But I cant seem to >> > find a >> > call to get the bucket's bucket type >> > >> > Thebucket = riak_object:bucket(Object), >> > Thekey = riak_object:key(Object), >> > >> > Thanks ! >> > >> > On 18 November 2016 at 12:14, Luke Bakken <lbak...@basho.com> wrote: >> >> >> >> Mav - >> >> >> >> Can you go into more detail? The subject of your message is >> >> "initializing a commit hook". >> >> >> >> -- >> >> Luke Bakken >> >> Engineer >> >> lbak...@basho.com >> >> >> >> On Thu, Nov 17, 2016 at 9:09 AM, Mav erick <mav4...@gmail.com> wrote: >> >> > Folks >> >> > >> >> > Is there way RIAK can call an erlang function in a module when RIAK >> >> > starts >> >> > up ? >> >> > >> >> > Thanks >> >> > Mav >> > >> > > > _______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com