1
0
Files
2022-09-29 17:59:04 +03:00

292 lines
8.0 KiB
Plaintext

#include "ui.h"
#include <errno.h>
void archive_db_confirm(mySession *session, char *name, int type)
{
if ( session->textonly == 0 )
{
@ <html><head><title>SGI Embedded Support Partner - ver.1.0</title>
@ <body bgcolor="#E3E6D8">
@table border=0 cellpadding=0 cellspacing=0 width=100%
@row
@cell bgcolor="#C7CDB5" width="15"
@ &nbsp;&nbsp;&nbsp;&nbsp;
@endcell
@cell bgcolor="#C7CDB5"
@ Archive Database
@endcell
@endrow
@row
@cell colspan=2
@ &nbsp;<p>&nbsp;
@endcell
@endrow
@row
@cell
@ &nbsp;
@endcell
@cell
@format "Archive <b>%s</b> was successfully removed." name
@endcell
@endrow
@endtable
@ </body></html>
}
else
{
@ <html><head><title>SGI Embedded Support Partner - ver.1.0</title>
@ <body bgcolor="#E3E6D8">
@ <pre> Archive Database</pre>
@ <hr width=100%>
@format "<p>Archive <b>%s</b> was successfully removed." name
@ </body></html>
}
}
void archive_list(sscErrorHandle hError, mySession *session,ssdb_Connection_Handle connection,
ssdb_Error_Handle error_handle,CMDPAIR *cmdp)
{
ssdb_Request_Handle req_handle;
const char **vector;
int number_of_records,rec_sequence;
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
"select arc_id,dbname,startdate,enddate from archive_list order by arc_id")))
{
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
return;
}
if((number_of_records = getnumrecords(hError,error_handle,req_handle)) > 0)
{
if ( session->textonly == 0 )
{
@ Choose the database to be deleted:&nbsp;
@ <select name="ssdbs">
@ <option value=0>Database Archive Name(s)
}
else
{
@ Choose the database to be deleted:
@ <p><select name="ssdbs">
@ <option value=0>Database Archive Name(s)\n
}
for (rec_sequence=0; rec_sequence < number_of_records; rec_sequence++)
{
vector = ssdbGetRow(error_handle,req_handle);
if(vector)
@format "<option value=\"%s\">%s (%s - %s)\n" vector[1] vector[1] vector[2] vector[3]
}
ssdbFreeRequest(error_handle,req_handle);
@ </select>
@ <p><INPUT TYPE="SUBMIT" VALUE=" Delete Database ">
}
else
{
if ( session->textonly == 0 )
{
@ <b>There are no archives at this time.</b>
}
else
{
@ <p>There are no archives at this time.
}
}
}
void archive_table(sscErrorHandle hError, mySession *session,ssdb_Connection_Handle connection,
ssdb_Error_Handle error_handle,CMDPAIR *cmdp)
{
ssdb_Request_Handle req_handle;
const char **vector;
int number_of_records,rec_sequence;
char startdate[40],event_time[16],enddate[40];
if ( session->textonly == 0 )
{
@table border=4 cellpadding=6 cellspacing=1
@row align=center
@cell colspan=2
@ <b>Database Name</b>
@endcell
@cell
@ <b>Start Date</b>
@endcell
@cell
@ <b>End Date</b>
@endcell
@endrow
@row
@cell
@ <input type="radio" name="dbname" value="ssdb" checked>
@endcell
@cell
@ Active Database
@endcell
@cell
}
else
{
@ <p><pre>
@format " -------------------------------------------------------\n"
@format " | Database Name | Start Date | End Date |\n"
@format " |-----------------------------------------------------|\n"
@format " |<input type=\"radio\" name=\"dbname\" value=\"ssdb\"> | Active Database |"
}
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
"select event_start from event where event_id=1")))
{
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
return;
}
if((number_of_records = getnumrecords(hError,error_handle,req_handle)) > 0)
{
vector = ssdbGetRow(error_handle,req_handle);
if(vector)
{
makedate(atoi(vector[0]),startdate,event_time);
if ( session->textonly == 0 )
@format "%s" startdate
else
@format " %-10.10s |" startdate
}
else
{
if ( session->textonly == 0 )
@ Current
else
@format " Current |"
}
}
else
{
if ( session->textonly == 0 )
@ Current
else
@format " Current |"
}
ssdbFreeRequest(error_handle,req_handle);
if ( session->textonly == 0 )
{
@endcell
@cell
@ Current
@endcell
@endrow
}
else
{
@format " Current |\n"
}
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
"select arc_id,dbname,startdate,enddate from archive_list order by arc_id")))
{
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
return;
}
if((number_of_records = getnumrecords(hError,error_handle,req_handle)) > 0)
{
for(rec_sequence = 0; rec_sequence < number_of_records; rec_sequence++)
{
vector = ssdbGetRow(error_handle,req_handle);
if(vector)
{
if ( session->textonly == 0 )
{
@row
@cell
@format "<input type=\"radio\" name=\"dbname\" value=\"%s\">" vector[1]
@endcell
@cell
@format "%s" vector[1]
@endcell
@cell
@format "%s" vector[2]
@endcell
@cell
@format "%s" vector[3]
@endcell
@endrow
}
else
{
@format " |-----------------------------------------------------|\n"
@format " |<input type=\"radio\" name=\"dbname\" value=\"%s\"> |" vector[1]
@format " %-15.15s |" vector[1]
@format " %-10.10s |" vector[2]
@format " %-10.10s |\n" vector[3]
}
}
}
ssdbFreeRequest(error_handle,req_handle);
}
if ( session->textonly == 0 )
{
@endtable
}
else
{
@format " -------------------------------------------------------</pre>\n"
}
}
void delete_archive(sscErrorHandle hError, mySession *session,ssdb_Connection_Handle connection,
ssdb_Error_Handle error_handle,CMDPAIR *cmdp)
{
ssdb_Request_Handle req_handle;
const char **vector;
int number_of_records,rec_sequence,common_int;
char dbnames[80];
if(!get_variable(hError,cmdp,CHARTYPE,"ssdbs",dbnames,&common_int,1000))
return;
/* We are going to delete archive logicaly */
req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_DELETE,
"delete from archive_list where dbname='%s'",dbnames);
if ( req_handle == NULL )
{
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
return;
}
ssdbFreeRequest(error_handle,req_handle);
/* Then physicaly */
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_DROPDATABASE,
"drop database if exists %s",dbnames)))
{
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
return;
}
ssdbFreeRequest(error_handle,req_handle);
/* Then References */
req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_DELETE,
"delete from mysql.db where Db='%s'",dbnames);
if ( req_handle == NULL )
{
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
return;
}
ssdbFreeRequest(error_handle,req_handle);
req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_DELETE,
"delete from mysql.host where Db='%s'",dbnames);
if (req_handle == NULL )
{
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
return;
}
ssdbFreeRequest(error_handle,req_handle);
system("/usr/sbin/ssdbadmin reload");
archive_db_confirm(session,dbnames,0);
}