Skip to content

Commit

Permalink
ncm-openstack: fix unittests
Browse files Browse the repository at this point in the history
  • Loading branch information
alvarosimon committed Jun 14, 2019
1 parent fb47ad9 commit 393e368
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,14 @@ function openstack_merge = {
Returns undef if nothing is found.}
function openstack_identity_gather_find_authtoken = {
data = ARGV[0];
name = ARGV[1];

foreach (k; v; data) {
res = undef;
if (k == 'keystone_authtoken') {
if (k == name) {
res = v;
} else if (is_dict(v)) {
res = openstack_identity_gather_find_authtoken(v);
res = openstack_identity_gather_find_authtoken(v, name);
};
if (is_defined(res)) {
return(res);
Expand Down Expand Up @@ -135,7 +136,8 @@ function openstack_identity_gather_service = {
# user/passwd data
# get user/password from a keystone_authtoken section
# section can be nested
authtoken = openstack_identity_gather_find_authtoken(srv);
auth_key = if (service == 'metric' && flavour == 'ceilometer') 'service_credentials' else 'keystone_authtoken';
authtoken = openstack_identity_gather_find_authtoken(srv, auth_key);
if (is_defined(authtoken)) {
if (!exists(authtoken['username']) || !exists(authtoken['password'])) {
error("%s: authtoken section has no user and/or password %s %s", FUNCTION, descr, msg);
Expand Down Expand Up @@ -216,7 +218,7 @@ function openstack_identity_gather = {

os_component = '/software/components/openstack';
os_services = list('identity', 'network', 'compute', 'image',
'volume', 'share', 'catalog', 'orchestration');
'volume', 'share', 'catalog', 'orchestration', 'metric');

hosts = list(list(OBJECT, ''));
if (ARGC > 1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,9 @@ unique template components/openstack/identity/gather/metric/ceilometer;

@{openstack_quattor_ceilometer default value until we can use the schema defaults from value}
prefix "/software/components/openstack/metric/ceilometer/quattor";
'service/name' = 'gnocchi';
prefix "service/internal";
'proto' ?= 'https';
'host' ?= OBJECT;
'port' ?= 8041;
'suffix' ?= '';

prefix "services/gnocchi";
"type" = "metric";
"internal/port" ?= 8041;
"internal/suffix" ?= '';
25 changes: 13 additions & 12 deletions ncm-openstack/src/main/perl/OpenStack/Ceilometer.pm
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,11 @@ Readonly::Array my @CEILOMETER_DB_VERSION => qw(--version);
Readonly::Hash my %CONF_FILE => {
service => "/etc/ceilometer/ceilometer.conf",
gnocchi => "/etc/gnocchi/gnocchi.conf",
#pipeline => "/etc/ceilometer/pipeline.yaml",
#polling => "/etc/ceilometer/polling.yaml",
};

Readonly::Hash my %DAEMON => {
service => ['openstack-ceilometer-notification', 'openstack-ceilometer-central'],
gnocchi => ['openstack-gnocchi-api', 'openstack-gnocchi-metricd'],
gnocchi => ['openstack-gnocchi-metricd', 'httpd'],
};

Readonly::Hash my %DAEMON_HYPERVISOR => {
Expand All @@ -42,34 +40,37 @@ sub _attrs
{
my $self = shift;

$self->{manage} = $self->{hypervisor} ? undef : $GNOCCHI_DB_MANAGE_COMMAND;
$self->{manage} = $self->{hypervisor} ? undef : $CEILOMETER_DB_MANAGE_COMMAND;
#delete $self->{manage};
# Ceilometer has no database parameters
$self->{db_version} = [@CEILOMETER_DB_VERSION];
$self->{db_sync} = [@CEILOMETER_DB_BOOTSTRAP];
$self->{filename} = \%CONF_FILE;
$self->{fileownergroup}->{$CONF_FILE{gnocchi}} = {
user => 'gnocchi',
group => 'gnocchi',
};
$self->{daemon_map} = $self->{hypervisor} ? \%DAEMON_HYPERVISOR : \%DAEMON;
}

=item pre_populate_service_database
=item post_populate_service_database
Initializes Ceilometer database after Gnocchi setup
for C<Ceilometer> metric service.
Initializes C<Gnocchi> database for C<Ceilometer> metric service.
This should be done before C<Ceilometer> database bootstrap.
=cut

sub post_populate_service_database
sub pre_populate_service_database
{
my ($self) = @_;

my $cmd = [$CEILOMETER_DB_MANAGE_COMMAND];
$self->_do($cmd, "post-populate Ceilometer database", sensitive => 0)
my $cmd = [$GNOCCHI_DB_MANAGE_COMMAND];
$self->_do($cmd, "pre-populate Gnocchi database", sensitive => 0, user => 'gnocchi')
or return;

return 1;
}


=pod
=back
Expand Down
17 changes: 12 additions & 5 deletions ncm-openstack/src/main/perl/OpenStack/Service.pm
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,7 @@ sub _init_attrs

# config filename
$self->{filename} = "/etc/$self->{flavour}/$self->{flavour}.conf";
$self->{filewonergroup} = {};

# default TT file
$self->{tt} = "common";
Expand Down Expand Up @@ -329,13 +330,17 @@ Return hashref with filewriter options for C<service>

sub _file_opts
{
my ($self) = @_;
my ($self, $filename) = @_;

my $og = $self->{fileownergroup}->{$filename} || {};
my $owner = $og->{user} || $self->{user};
my $group = $og->{group} || $self->{user};

my %opts = (
mode => "0640",
backup => ".quattor.backup",
owner => $self->{user},
group => $self->{user},
owner => $owner,
group => $group,
log => $self,
sensitive => $self->{sensitive} ? 1 : 0,
);
Expand All @@ -355,7 +360,7 @@ sub _write_config_file

my $tr = $self->_render($element) or return;

my $opts = $self->_file_opts();
my $opts = $self->_file_opts($filename);

my $fh = $tr->filewriter($filename, %$opts);
if (defined $fh) {
Expand Down Expand Up @@ -534,6 +539,9 @@ Must return 1 on success.
sub populate_service_database
{
my ($self) = @_;

# execute pre_populate commands before everything else
$self->pre_populate_service_database();
# db_version is slow when not initialised
# (lots of retries before it gives up; can take up to 90s)
if ($self->_do([$self->{manage}, @{$self->{db_version}}], 'determine database version', test => 1)) {
Expand All @@ -544,7 +552,6 @@ sub populate_service_database
};

# Always populate/sync the databases
$self->pre_populate_service_database();
if ($self->_do([$self->{manage}, @{$self->{db_sync}}], 'populate database')) {
return $self->post_populate_service_database();
} else {
Expand Down
6 changes: 3 additions & 3 deletions ncm-openstack/src/test/perl/cmddata.pm
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,10 @@ $cmds{heat_db_version}{out} = 1;
$cmds{heat_db_version_missing}{cmd} = "/usr/bin/heat-manage db_version";
$cmds{heat_db_version_missing}{ec} = 1;

$cmds{ceilometer_db_version}{cmd} = "/usr/bin/gnocchi-upgrade --version";
$cmds{ceilometer_db_version}{out} = 1;
$cmds{ceilometer_db_version}{cmd} = "/usr/bin/ceilometer-upgrade --version";
$cmds{ceilometer_db_version}{out} = "11.0.1";

$cmds{ceilometer_db_version_missing}{cmd} = "/usr/bin/gnocchi-upgrade --version";
$cmds{ceilometer_db_version_missing}{cmd} = "/usr/bin/ceilometer-upgrade --version";
$cmds{ceilometer_db_version_missing}{ec} = 1;

$cmds{murano_db_version}{cmd} = "/usr/bin/murano-db-manage version";
Expand Down
10 changes: 5 additions & 5 deletions ncm-openstack/src/test/perl/openstack.t
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,11 @@ ok(command_history_ok([
'service openstack-manila-api restart',
'service openstack-manila-scheduler restart',
'service openstack-manila-share restart',
'/usr/bin/nova-manage db version',
'/usr/bin/nova-manage api_db sync',
'/usr/bin/nova-manage cell_v2 map_cell0',
'/usr/bin/nova-manage cell_v2 create_cell --name=cell1 --verbose',
'/usr/bin/nova-manage cell_v2 discover_hosts --verbose',
'/usr/bin/nova-manage db version',
'/usr/bin/nova-manage db sync',
'service openstack-nova-api restart',
'service openstack-nova-consoleauth restart',
Expand All @@ -172,11 +172,11 @@ ok(command_history_ok([
'/usr/bin/murano-db-manage upgrade',
'service murano-api restart',
'service murano-engine restart',
'/usr/bin/gnocchi-upgrade --version',
'/usr/bin/gnocchi-upgrade --debug',
'/usr/bin/ceilometer-upgrade',
'service openstack-gnocchi-api restart',
'/usr/bin/gnocchi-upgrade',
'/usr/bin/ceilometer-upgrade --version',
'/usr/bin/ceilometer-upgrade --debug',
'service openstack-gnocchi-metricd restart',
'service httpd restart',
'service openstack-ceilometer-notification restart',
'service openstack-ceilometer-central restart',
'service httpd restart',
Expand Down
4 changes: 2 additions & 2 deletions ncm-openstack/src/test/perl/rest_data/openstack
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ dopost('serviceneutron', 'service', '"description":"OS network service neutron",
dopost('servicemanila', 'service', '"description":"OS share service manila","enabled":true,"name":"manila","type":"share"', 'serv120');
dopost('servicemanilav2', 'service', '"description":"OS sharev2 service manilav2","enabled":true,"name":"manilav2","type":"sharev2"', 'serv121');
dopost('serviceheatcfn', 'service', '"description":"OS cloudformation service heat-cfn","enabled":true,"name":"heat-cfn","type":"cloudformation"', 'serv122');
dopost('serviceceilometer', 'service', '"description":"OS metric service ceilometer","enabled":true,"name":"ceilometer","type":"metric"', 'serv123');
dopost('servicegnocchi', 'service', '"description":"OS metric service gnocchi","enabled":true,"name":"gnocchi","type":"metric"', 'serv123');

dopost('endpoint1', 'endpoint', '"interface":"admin","service_id":"serv111","url":"http://admin"', 'ept1');
dopost('endpoint2', 'endpoint', '"interface":"internal","service_id":"serv111","url":"http://internal0"', 'ept2');
Expand All @@ -91,7 +91,7 @@ dopost('epkeystoneadmin', 'endpoint', '"interface":"admin","service_id":"serv114
mkept('glance', 'serv115', 'https://openstack:9292/');
mkept('heat', 'serv116', 'https://openstack:8004/v1/%\\(tenant_id\\)s');
mkept('heat-cfn', 'serv122', 'https://openstack:8000/v1');
mkept('ceilometer', 'serv123', 'https://openstack:8041/');
mkept('gnocchi', 'serv123', 'https://openstack:8041/');
mkept('murano', 'serv117', 'https://openstack:8082/');
mkept('cinderv2', 'serv118', 'https://openstack:8776/v2/%\\(project_id\\)s');
mkept('cinderv3', 'serv118b', 'https://openstack:8776/v3/%\\(project_id\\)s');
Expand Down

0 comments on commit 393e368

Please sign in to comment.