00001 #include <stdio.h>
00002 #include <libstoragemgmt/libstoragemgmt.h>
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 void error(char *msg, int rc, lsm_error *e)
00032 {
00033 if( rc ) {
00034 printf("%s: error: %d\n", msg, rc);
00035
00036 if( e && lsm_error_message_get(e) ) {
00037 printf("Msg: %s\n", lsm_error_message_get(e));
00038 lsm_error_free(e);
00039 }
00040 }
00041 }
00042
00043 void list_pools(lsm_connect *c)
00044 {
00045 lsm_pool **pools = NULL;
00046 int rc = 0;
00047 uint32_t count = 0;
00048
00049 rc = lsm_pool_list(c, NULL, NULL, &pools, &count, LSM_CLIENT_FLAG_RSVD);
00050 if( LSM_ERR_OK == rc ) {
00051 uint32_t i;
00052 for( i = 0; i < count; ++i) {
00053 printf("pool name: %s freespace: %"PRIu64"\n",
00054 lsm_pool_name_get(pools[i]),
00055 lsm_pool_free_space_get(pools[i]));
00056 }
00057
00058 lsm_pool_record_array_free(pools, count);
00059 } else {
00060 error("Volume list", rc, lsm_error_last_get(c));
00061 }
00062 }
00063
00064 int main()
00065 {
00066 lsm_connect *c = NULL;
00067 lsm_error *e = NULL;
00068 int rc = 0;
00069
00070 const char *uri = "sim://";
00071
00072 rc = lsm_connect_password(uri, NULL, &c, 30000, &e, LSM_CLIENT_FLAG_RSVD);
00073
00074 if( LSM_ERR_OK == rc ) {
00075 printf("We connected...\n");
00076
00077 list_pools(c);
00078
00079 rc = lsm_connect_close(c, LSM_CLIENT_FLAG_RSVD);
00080 if( LSM_ERR_OK != rc ) {
00081 error("Close", rc, lsm_error_last_get(c));
00082 } else {
00083 printf("We closed\n");
00084 }
00085 } else {
00086 error("Connect", rc, e);
00087 }
00088
00089 return rc;
00090 }