mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-10-31 19:32:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			112 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| # IBM(c) 2013 EPL license http://www.eclipse.org/legal/epl-v10.html
 | |
| package xCAT_schema::Clouds;
 | |
| 
 | |
| ################################################################################
 | |
| #
 | |
| # xCAT database Schema for representing OpenStack clouds in an xCAT cluster
 | |
| #
 | |
| ################################################################################
 | |
| %tabspec = (
 | |
|     clouds => {      
 | |
| 	cols => [qw(name controller hostip pubinterface mgtinterface datainterface template repository virttype comments disable)],  #do not change 'disable' and 'comments', it is required by xCAT
 | |
| 	keys => [qw(name)],
 | |
|         required => [qw(name)],
 | |
| 	table_desc => 'OpenStack clouds managed by this xCAT cluster',
 | |
| 	descriptions => {
 | |
|         name => 'The name of the cloud.  This is referred to by the nodes in the cloud table.',
 | |
| 	    controller => 'The xCAT node name of the controller node',
 | |
| 	    hostip => 'The host IP is in openstack management network on the controller node. It is always the rabbitmq host IP and nova_metadata_ip.',
 | |
| 	    pubinterface => 'Interface to use for external bridge. The default value is eth1.',
 | |
| 	    mgtinterface => 'Interface to use for openstack management. It is supposed that the mgtinterface for all the nodes are the same, and in the same network.',
 | |
| 	    datainterface => 'Interface to use for OpenStack nova vm communication. It is supposed that the datainterface for all the nodes are the same, and in the same network.',
 | |
| 	    template => 'Every cloud should be related to one environment template file. The absolute path is required.',
 | |
| 	    repository => 'Every could should be related to the openstack-chef-cookbooks. The absolute path is required. In the repository, there are cookbooks, environments, roles and on on.',
 | |
|             virttype => 'What hypervisor software layer to use with libvirt (e.g., kvm, qemu).',
 | |
| 	    comments => 'Any user-written notes.',
 | |
| 	    disable => "Set to 'yes' or '1' to comment out this row.",
 | |
| 	},
 | |
|     },
 | |
|     cloud => {     
 | |
|         cols => [qw(node cloudname comments disable)],
 | |
|         keys => [qw(node)],
 | |
|         required => [qw(node cloudname)],
 | |
|         table_desc => 'xCAT nodes that are used in OpenStack clouds',
 | |
|         descriptions => {
 | |
|             node=> 'The xCAT node name',
 | |
|             cloudname => 'The name of the cloud in the xCAT clouds table that is using this node',
 | |
| 	    comments => 'Any user-written notes.',
 | |
| 	    disable => "Set to 'yes' or '1' to comment out this row.",
 | |
|         },
 | |
|     },
 | |
| ); # end of tabspec definition
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ##################################################################
 | |
| # 
 | |
| #  Cloud object and attributes for *def commands 
 | |
| # 
 | |
| ################################################################## 
 | |
| 
 | |
| # cloud object
 | |
| %defspec = (
 | |
|     cloud => { attrs => [], attrhash => {}, objkey => 'name' },  
 | |
| );
 | |
| 
 | |
| # cloud attributes
 | |
| @{$defspec{cloud}->{'attrs'}} = 
 | |
| (
 | |
|     {   attr_name => 'name',
 | |
|         tabentry => 'clouds.name',
 | |
|         access_tabentry => 'clouds.name=attr:name',
 | |
|     },
 | |
|     {   attr_name => 'controller',
 | |
| 	tabentry => 'clouds.controller',
 | |
| 	access_tabentry => 'clouds.name=attr:name',
 | |
|     },
 | |
|     {   attr_name => 'hostip',
 | |
| 	tabentry => 'clouds.hostip',
 | |
| 	access_tabentry => 'clouds.name=attr:name',
 | |
|     },
 | |
|     {   attr_name => 'pubinterface',
 | |
| 	tabentry => 'clouds.pubinterface',
 | |
| 	access_tabentry => 'clouds.name=attr:name',
 | |
|     },
 | |
|     {   attr_name => 'mgtinterface',
 | |
| 	tabentry => 'clouds.mgtinterface',
 | |
| 	access_tabentry => 'clouds.name=attr:name',
 | |
|     },
 | |
|     {   attr_name => 'datainterface',
 | |
| 	tabentry => 'clouds.datainterface',
 | |
| 	access_tabentry => 'clouds.name=attr:name',
 | |
|     },
 | |
|     {   attr_name => 'template',
 | |
| 	tabentry => 'clouds.template',
 | |
| 	access_tabentry => 'clouds.name=attr:name',
 | |
|     },
 | |
|     {   attr_name => 'repository',
 | |
| 	tabentry => 'clouds.repository',
 | |
| 	access_tabentry => 'clouds.name=attr:name',
 | |
|     },
 | |
|     {   attr_name => 'virttype',
 | |
| 	tabentry => 'clouds.virttype',
 | |
| 	access_tabentry => 'clouds.name=attr:name',
 | |
|     }
 | |
| );
 | |
| 
 | |
| #  node attributes for clouds
 | |
| @{$defspec{node}->{'attrs'}} = 
 | |
| (
 | |
|     {	attr_name => 'cloud',
 | |
| 	tabentry => 'cloud.cloudname',
 | |
| 	access_tabentry => 'cloud.node=attr:node',
 | |
|     },
 | |
| );
 | |
| 1;
 | |
| 
 | |
| 
 |