nfs-ganesha 1.4
|
00001 #ifdef HAVE_CONFIG_H 00002 #include "config.h" 00003 #endif 00004 00005 #include "posixdb_internal.h" 00006 #include <stdio.h> 00007 #include <string.h> 00008 00009 int main(void) 00010 { 00011 fsal_posixdb_status_t st; 00012 fsal_posixdb_conn *p_conn; 00013 fsal_posixdb_conn_params_t dbparams; 00014 PGresult *p_res; 00015 int i; 00016 int field_handle; 00017 char path[FSAL_MAX_PATH_LEN]; 00018 posixfsal_handle_t handle; 00019 posixfsal_handle_t handle2; 00020 fsal_posixdb_fileinfo_t info; 00021 fsal_path_t fsalpath; 00022 fsal_name_t fsalname; 00023 00024 memset(&dbparams, 0, sizeof(dbparams)); 00025 strcpy(dbparams.host, "localhost"); 00026 strcpy(dbparams.dbname, "test"); 00027 00028 /* connexion */ 00029 00030 st = fsal_posixdb_connect(&dbparams, &p_conn); 00031 Logtest("%i (%i) : %p", st.major, PQstatus(p_conn), p_conn); 00032 00033 /* simple query */ 00034 //PQtrace(p_conn, stderr); 00035 /* 00036 p_res = PQexec(p_conn, "DELETE FROM Parent"); 00037 Logtest("status : %s", PQresStatus(PQresultStatus(p_res))); 00038 PQclear(p_res); 00039 p_res = PQexec(p_conn, "DELETE FROM Handle"); 00040 Logtest("status : %s", PQresStatus(PQresultStatus(p_res))); 00041 PQclear(p_res); 00042 */ 00043 // ajout de la racine : 00044 /* 00045 puts("ajout de /"); 00046 memset(&info, 0, sizeof(fsal_posixdb_fileinfo_t)); 00047 info.devid = 801; 00048 info.inode = 2; 00049 info.nlink = 23; 00050 00051 memset(&handle2, 0, sizeof(posixfsal_handle_t)); 00052 memset(&fsalname, 0, sizeof(fsal_name_t)); 00053 00054 st = fsal_posixdb_add( p_conn, &info, &handle2, &fsalname, &handle); 00055 Logtest("status : %i %i", st.major, st.minor); 00056 if (st.major == ERR_FSAL_POSIXDB_NOERR) { 00057 Logtest("handle %lli/%i", handle.id, handle.ts); 00058 } 00059 00060 // ajout de la /tmp : 00061 puts("ajout de /tmp"); 00062 memset(&info, 0, sizeof(fsal_posixdb_fileinfo_t)); 00063 info.devid = 805; 00064 info.inode = 2; 00065 info.nlink = 21; 00066 00067 memcpy(&handle2, &handle, sizeof(posixfsal_handle_t)); 00068 memset(&fsalname, 0, sizeof(fsal_name_t)); 00069 strcpy(fsalname.name, "tmp"); 00070 fsalname.len=3; 00071 00072 st = fsal_posixdb_add( p_conn, &info, &handle2, &fsalname, &handle); 00073 Logtest("status : %i %i", st.major, st.minor); 00074 if (st.major == ERR_FSAL_POSIXDB_NOERR) { 00075 Logtest("handle %lli/%i", handle.id, handle.ts); 00076 } 00077 00078 // ajout de /tmp une 2 eme fois 00079 puts("ajout de /tmp avec un autre inode"); 00080 info.inode++; 00081 st = fsal_posixdb_add( p_conn, &info, &handle2, &fsalname, &handle); 00082 Logtest("status : %i %i", st.major, st.minor); 00083 if (st.major == ERR_FSAL_POSIXDB_NOERR) { 00084 Logtest("handle %lli/%i", handle.id, handle.ts); 00085 } 00086 00087 puts("ajout de /tmp/toto"); 00088 info.devid=456; 00089 info.inode=8765; 00090 strcpy(fsalname.name, "toto"); 00091 fsalname.len=4; 00092 00093 st = fsal_posixdb_add( p_conn, &info, &handle, &fsalname, &handle2); 00094 Logtest("status : %i %i", st.major, st.minor); 00095 if (st.major == ERR_FSAL_POSIXDB_NOERR) { 00096 Logtest("handle %lli/%i", handle2.id, handle2.ts); 00097 } 00098 00099 puts("ajout de /tmp/toto/titi"); 00100 info.devid=456; 00101 info.inode=8734; 00102 strcpy(fsalname.name, "titi"); 00103 fsalname.len=4; 00104 00105 st = fsal_posixdb_add( p_conn, &info, &handle2, &fsalname, &handle); 00106 Logtest("status : %i %i", st.major, st.minor); 00107 if (st.major == ERR_FSAL_POSIXDB_NOERR) { 00108 Logtest("handle %lli/%i", handle.id, handle.ts); 00109 } 00110 00111 puts("getInfoFromHandle de /tmp/toto"); 00112 st = fsal_posixdb_getInfoFromHandle( p_conn, &handle2, &fsalpath, 1, &i, &info ); 00113 Logtest("status : %i %i", st.major, st.minor); 00114 if (st.major == ERR_FSAL_POSIXDB_NOERR) { 00115 Logtest("path: %s, handle %lli/%i", fsalpath.path, handle2.id, handle2.ts); 00116 } 00117 00118 memset(&fsalpath, 0,sizeof(fsalpath)); 00119 puts("getInfoFromHandle de /tmp/toto/titi"); 00120 st = fsal_posixdb_getInfoFromHandle( p_conn, &handle, &fsalpath, 1, &i, &info ); 00121 Logtest("status : %i %i", st.major, st.minor); 00122 if (st.major == ERR_FSAL_POSIXDB_NOERR) { 00123 Logtest("path: %s, handle %lli/%i", fsalpath.path, handle.id, handle.ts); 00124 } 00125 00126 st = fsal_posixdb_delete( p_conn, &handle2, &fsalname, &info); 00127 Logtest("status : %i %i", st.major, st.minor); 00128 */ 00129 00130 handle.id = 3226283; 00131 handle.ts = 1143621188; 00132 st = fsal_posixdb_buildOnePath(p_conn, &handle, &fsalpath); 00133 Logtest("%s", fsalpath.path); 00134 00135 return 0; 00136 }