7 #include <rados/librados.h>
9 MODULE = PVE::RADOS PACKAGE = PVE::RADOS
11 rados_t pve_rados_create()
16 int ret = rados_create(&clu, NULL);
21 warn("rados_create failed (ret=%d)\n", ret);
27 int pve_rados_connect(cluster)
32 rados_conf_read_file(cluster, NULL);
34 RETVAL = rados_connect(cluster);
36 die("rados_connect failed - %s\n", strerror(-RETVAL));
42 pve_rados_shutdown(cluster)
47 rados_shutdown(cluster);
51 pve_rados_mon_command(cluster, cmds)
67 while ((arg = av_pop(cmds)) && (arg != &PL_sv_undef)) {
69 die("too many arguments");
71 cmd[cmdlen] = SvPV_nolen(arg);
75 int ret = rados_mon_command(cluster, cmd, cmdlen,
81 die("mon_command failed - %s\n", outs);
82 rados_buffer_free(outs);
85 printf("TEST %d %d %d\n", ret, outbuflen, outslen);
87 RETVAL = newSVpv(outbuf, outbuflen);
89 rados_buffer_free(outbuf);
94 pve_rados_cluster_stat(cluster)
99 struct rados_cluster_stat_t result;
100 int ret = rados_cluster_stat(cluster, &result);
103 warn("rados_cluster_stat failed (ret=%d)\n", ret);
106 HV * rh = (HV *)sv_2mortal((SV *)newHV());
108 hv_store(rh, "kb", 2, newSViv(result.kb), 0);
109 hv_store(rh, "kb_used", 7, newSViv(result.kb_used), 0);
110 hv_store(rh, "kb_avail", 8, newSViv(result.kb_avail), 0);
111 hv_store(rh, "num_objects", 11, newSViv(result.num_objects), 0);