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;
|
|
|
|
|