7 #include <rados/librados.h>
9 MODULE = PVE::RADOS PACKAGE = PVE::RADOS
17 int ret = rados_create(&clu, NULL);
22 warn("rados_create failed (ret=%d)\n", ret);
29 pve_rados_conf_set(cluster, key, value)
36 RETVAL = rados_conf_set(cluster, key, value);
38 die("rados_conf_set failed - %s\n", strerror(-RETVAL));
44 int pve_rados_connect(cluster)
49 rados_conf_read_file(cluster, NULL);
51 RETVAL = rados_connect(cluster);
53 die("rados_connect failed - %s\n", strerror(-RETVAL));
59 pve_rados_shutdown(cluster)
64 rados_shutdown(cluster);
68 pve_rados_mon_command(cluster, cmds)
84 while ((arg = av_pop(cmds)) && (arg != &PL_sv_undef)) {
86 die("too many arguments");
88 cmd[cmdlen] = SvPV_nolen(arg);
92 int ret = rados_mon_command(cluster, cmd, cmdlen,
98 die("mon_command failed - %s\n", outs);
99 rados_buffer_free(outs);
102 printf("TEST %d %d %d\n", ret, outbuflen, outslen);
104 RETVAL = newSVpv(outbuf, outbuflen);
106 rados_buffer_free(outbuf);
111 pve_rados_cluster_stat(cluster)
116 struct rados_cluster_stat_t result;
117 int ret = rados_cluster_stat(cluster, &result);
120 warn("rados_cluster_stat failed (ret=%d)\n", ret);
123 HV * rh = (HV *)sv_2mortal((SV *)newHV());
125 hv_store(rh, "kb", 2, newSViv(result.kb), 0);
126 hv_store(rh, "kb_used", 7, newSViv(result.kb_used), 0);
127 hv_store(rh, "kb_avail", 8, newSViv(result.kb_avail), 0);
128 hv_store(rh, "num_objects", 11, newSViv(result.num_objects), 0);