git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@15162 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			132 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
 | |
| package xCAT_schema::Sample;
 | |
| 
 | |
| #################################################################################
 | |
| # This is a sample code that contains the user defined user database schema defination.
 | |
| # Here is a list of things you can do to add DB tables to xCAT database.
 | |
| #   1  Copy this file to /opt/xcat/lib/perl/xCAT_schema directory, rename it
 | |
| #      to your chosen schema name. 
 | |
| #   2  Change the word Sample above to be the same as the file name you chose.
 | |
| #   3  Do NOT change the variable name "%tabspec".
 | |
| #   4  x_lljob and x_llnode are the sample table names. 
 | |
| #      jobid, status, node, jobstatus are the sample column names. 
 | |
| #      Change them to your like. Please make sure all table names start with "x_".
 | |
| #      Each table must have a 'disable' and comments column.
 | |
| #      Table names and attributes must be lower case, no case sensitivity is 
 | |
| #      supported.
 | |
| #      Please do not use SQL reserved words for your table names and column names.
 | |
| #      Use this site to check the reserved words: 
 | |
| #         http://www.petefreitag.com/tools/sql_reserved_words_checker/  
 | |
| #   5 Change the keys.
 | |
| #   6 Change the data types. For SQLite
 | |
| #           the  default data type is TEXT if not specified.
 | |
| #     The supported data types are: 
 | |
| #        REAL,CHAR,TEXT,DATE,TIME,FLOAT,BIGINT,DOUBLE,STRING,
 | |
| #        BINARY,DECIMAL,BOOLEAN,INTEGER,VARCHAR,SMALLINT,TIMESTAMP
 | |
| #     Please note that SQLight only supports: INTEGER, REAL, TEXT, BLOB. 
 | |
| #     xCAT support MySQL, PostgreSQL and DB2 also, supported data types
 | |
| #     depend on the database you are using. 
 | |
| #   7 Change the table descriptions and column descriptions to your like.
 | |
| #   8 Restart the the xcatd, the tables will be automatically generated. 
 | |
| #   9 If you have service nodes,  copy all the files to those also and restart
 | |
| #     the daemon.
 | |
| #   Note compress and tablespace are only supported for DB2
 | |
| #   engine is only supported for MySQL 
 | |
| ###############################################################################
 | |
| %tabspec = (
 | |
|     x_lljob => {      #your table name should start with "x_".
 | |
| 	cols => [qw(jobid status comments disable)],  #do not change 'disable' and 'comments', it is required by xCAT
 | |
| 	keys => [qw(jobid)],
 | |
| 	keys => [qw(jobid)],
 | |
|         required => [qw(jobid)],
 | |
|         types => {
 | |
| 	    jobid => 'INTEGER',  
 | |
| 	},
 | |
|         engine => 'InnoDB',  
 | |
| 	table_desc => 'Stores jobs.',
 | |
| 	descriptions => {
 | |
| 	    jobid => 'The job id.',
 | |
| 	    status => 'The status of the job.',
 | |
| 	    comments => 'Any user-written notes.',
 | |
| 	    disable => "Set to 'yes' or '1' to comment out this row.",
 | |
| 	},
 | |
|     },
 | |
|     x_llnode => {     
 | |
|         cols => [qw(node jobid jobstatus cpu_usage comments disable)],
 | |
|         keys => [qw(node)],
 | |
|         required => [qw(node jobid)],
 | |
|         types => {
 | |
| 	    jobid => 'INTEGER',
 | |
| 	    cpu_usage => 'FLOAT',
 | |
| 	},
 | |
|         compress =>'YES',  
 | |
|         tablespace =>'XCATTBS32K', 
 | |
|         table_desc => 'Stores the node status.',
 | |
|         descriptions => {
 | |
|             node=> 'The node.',
 | |
|             jobid => 'The job that runs on the node.',
 | |
|             jobstatus => 'The status of the job on the node.',
 | |
|             cpu_usage => 'The percent of cpu usage on the node.',
 | |
| 	    comments => 'Any user-written notes.',
 | |
| 	    disable => "Set to 'yes' or '1' to comment out this row.",
 | |
|         },
 | |
|     },
 | |
| ); # end of tabspec definition
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ##################################################################
 | |
| # The following %defspec is OPTIONAL. You only need to define it 
 | |
| # if you want your tables to work with xCAT object abstraction layer
 | |
| # commands such as lsdef, mkdef, chdef and rmdef.
 | |
| #
 | |
| # Note: The xCAT database accessting commands such as
 | |
| #       tabdump, chtab, gettab, nodels, nodeadd, nodech, etc. 
 | |
| #       still work without it.
 | |
| # 
 | |
| #       Please make sure that any new object name and attribute name
 | |
| #       should start with "x_". 
 | |
| ################################################################## 
 | |
| 
 | |
| %defspec = (
 | |
|     x_job => { attrs => [], attrhash => {}, objkey => 'x_jobid' },   #create a new object called 'x_job', 
 | |
| );
 | |
| 
 | |
| #define the attribtues in the 'x_job' object using the x_lljob talbe columns.
 | |
| @{$defspec{x_job}->{'attrs'}} = 
 | |
| (
 | |
|     {   attr_name => 'x_jobid',
 | |
| 	tabentry => 'x_lljob.jobid',
 | |
| 	access_tabentry => 'x_lljob.jobid=attr:x_jobid',
 | |
|     },
 | |
|     {   attr_name => 'x_status',
 | |
| 	tabentry => 'x_lljob.status',
 | |
| 	access_tabentry => 'x_lljob.jobid=attr:x_jobid',
 | |
|     },
 | |
| );
 | |
| 
 | |
| #object 'node' already defined in /opt/xcat/lib/perl/xCAT/Schema.pm. 
 | |
| #Here we just add x_jobid and x_jobstatus attributes to the node object
 | |
| @{$defspec{node}->{'attrs'}} = 
 | |
| (
 | |
|     {	attr_name => 'x_jobid',
 | |
| 	tabentry => 'x_llnode.jobid',
 | |
| 	access_tabentry => 'x_llnode.node=attr:node',
 | |
|     },
 | |
|     {	attr_name => 'x_jobstatus',
 | |
| 	tabentry => 'x_llnode.jobstatus',
 | |
| 	access_tabentry => 'x_llnode.node=attr:node',
 | |
|     },
 | |
|     {	attr_name => 'x_cpu',
 | |
| 	tabentry => 'x_llnode.cpu_usage',
 | |
| 	access_tabentry => 'x_llnode.node=attr:node',
 | |
|     },
 | |
| );
 | |
| 1;
 | |
| 
 | |
| 
 |