#include "ui.h" #include void archive_db_confirm(mySession *session, char *name, int type) { if ( session->textonly == 0 ) { @ SGI Embedded Support Partner - ver.1.0 @ @table border=0 cellpadding=0 cellspacing=0 width=100% @row @cell bgcolor="#C7CDB5" width="15" @      @endcell @cell bgcolor="#C7CDB5" @ Archive Database @endcell @endrow @row @cell colspan=2 @  

  @endcell @endrow @row @cell @   @endcell @cell @format "Archive %s was successfully removed." name @endcell @endrow @endtable @ } else { @ SGI Embedded Support Partner - ver.1.0 @ @

   Archive Database
@
@format "

Archive %s was successfully removed." name @ } } 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:  @ @

} else { if ( session->textonly == 0 ) { @ There are no archives at this time. } else { @

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 @ Database Name @endcell @cell @ Start Date @endcell @cell @ End Date @endcell @endrow @row @cell @ @endcell @cell @ Active Database @endcell @cell } else { @

	        @format "   -------------------------------------------------------\n"
	        @format "   |     Database Name     |  Start Date  |  End  Date   |\n"
	        @format "   |-----------------------------------------------------|\n"
		@format "   | | 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 "" 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 "   | |" 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 "   -------------------------------------------------------
\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); }