Add action that returns number of running VMs on the unit.

Closes-Bug: #1911011
Change-Id: If9ae646bc91b6389876830843bbf905596963054
func-test-pr: https://github.com/openstack-charmers/zaza-openstack-tests/pull/535
This commit is contained in:
Martin Kalcok 2021-03-26 17:08:54 +01:00 committed by Alex Kavanagh
parent ddc6662aba
commit 5eea014dd5
5 changed files with 26 additions and 0 deletions

View File

@ -301,6 +301,7 @@ deployed then see file `actions.yaml`.
* `disable`
* `enable`
* `hugepagereport`
* `instance-count`
* `list-compute-nodes`
* `node-name`
* `openstack-upgrade`

View File

@ -12,6 +12,8 @@ register-to-cloud:
README.md, section 'Cloud downscaling'.
openstack-upgrade:
description: Perform openstack upgrades. Config option action-managed-upgrade must be set to True.
instance-count:
description: Return number of VM instances running on this unit.
list-compute-nodes:
description: List all nova-compute nodes registered in the Openstack cloud.
node-name:

View File

@ -137,6 +137,14 @@ def register_to_cloud():
})
def instance_count():
"""Implementation of `instance-count` action."""
nova = cloud_utils.nova_client()
vm_count = cloud_utils.running_vms(nova)
function_set({'instance-count': vm_count})
def list_computes():
"""Implementation of `list-compute-nodes` action."""
nova = cloud_utils.nova_client()
@ -156,6 +164,7 @@ ACTIONS = {
'enable': enable,
'remove-from-cloud': remove_from_cloud,
'register-to-cloud': register_to_cloud,
'instance-count': instance_count,
'list-compute-nodes': list_computes,
'node-name': node_name,
}

1
actions/instance-count Symbolic link
View File

@ -0,0 +1 @@
cloud.py

View File

@ -247,6 +247,19 @@ class TestRegisterToCloud(_ActionTestCase):
cloud.function_fail.assert_not_called()
class TestInstanceCount(_ActionTestCase):
NAME = 'instance-count'
def test_action_instance_count(self):
"""Test 'instance-count' action"""
running_vms = 2
cloud.cloud_utils.running_vms.return_value = 2
self.call_action()
cloud.function_set.assert_called_with({'instance-count': running_vms})
class TestListComputeNodes(_ActionTestCase):
NAME = 'list-compute-nodes'