projects
/
osm
/
MON.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Grafana dashboard automation
[osm/MON.git]
/
osm_mon
/
collector
/
infra_collectors
/
base_osinfra.py
diff --git
a/osm_mon/collector/infra_collectors/base_osinfra.py
b/osm_mon/collector/infra_collectors/base_osinfra.py
index
b603d03
..
9c8447c
100644
(file)
--- a/
osm_mon/collector/infra_collectors/base_osinfra.py
+++ b/
osm_mon/collector/infra_collectors/base_osinfra.py
@@
-24,7
+24,6
@@
from typing import List
from keystoneclient.v3 import client as keystone_client
from novaclient import client as nova_client
from keystoneclient.v3 import client as keystone_client
from novaclient import client as nova_client
-from novaclient import v2 as nova_client_v2
from osm_mon.collector.infra_collectors.base_vim import BaseVimInfraCollector
from osm_mon.collector.metric import Metric
from osm_mon.collector.infra_collectors.base_vim import BaseVimInfraCollector
from osm_mon.collector.metric import Metric
@@
-38,31
+37,41
@@
log = logging.getLogger(__name__)
class BaseOpenStackInfraCollector(BaseVimInfraCollector):
def __init__(self, config: Config, vim_account_id: str):
super().__init__(config, vim_account_id)
class BaseOpenStackInfraCollector(BaseVimInfraCollector):
def __init__(self, config: Config, vim_account_id: str):
super().__init__(config, vim_account_id)
- self.keystone = self._build_keystone_client(vim_account_id)
- self.nova = self._build_nova_client(vim_account_id)
- self.vim_account_id = vim_account_id
+ self.conf = config
self.common_db = CommonDbClient(config)
self.common_db = CommonDbClient(config)
+ self.vim_account = self.common_db.get_vim_account(vim_account_id)
+ self.keystone = self._build_keystone_client(self.vim_account)
+ self.nova = self._build_nova_client(self.vim_account)
def collect(self) -> List[Metric]:
metrics = []
vim_status = self.is_vim_ok()
def collect(self) -> List[Metric]:
metrics = []
vim_status = self.is_vim_ok()
- vim_status_metric = Metric({'vim_account_id': self.vim_account_id}, 'vim_status', vim_status)
+ vim_project_id = self.vim_account['_admin']['projects_read'][0]
+ vim_tags = {
+ 'vim_account_id': self.vim_account['_id'],
+ 'project_id': vim_project_id
+ }
+ vim_status_metric = Metric(vim_tags, 'vim_status', vim_status)
metrics.append(vim_status_metric)
metrics.append(vim_status_metric)
- vnfrs = self.common_db.get_vnfrs(vim_account_id=self.vim_account
_id
)
+ vnfrs = self.common_db.get_vnfrs(vim_account_id=self.vim_account
['_id']
)
for vnfr in vnfrs:
nsr_id = vnfr['nsr-id-ref']
for vnfr in vnfrs:
nsr_id = vnfr['nsr-id-ref']
+ ns_name = self.common_db.get_nsr(nsr_id)['name']
vnf_member_index = vnfr['member-vnf-index-ref']
vnf_member_index = vnfr['member-vnf-index-ref']
+ vnfr_project_id = vnfr['_admin']['projects_read'][0]
for vdur in vnfr['vdur']:
if 'vim-id' not in vdur:
log.debug("Field vim-id is not present in vdur")
continue
resource_uuid = vdur['vim-id']
tags = {
for vdur in vnfr['vdur']:
if 'vim-id' not in vdur:
log.debug("Field vim-id is not present in vdur")
continue
resource_uuid = vdur['vim-id']
tags = {
- 'vim_account_id': self.vim_account
_id
,
+ 'vim_account_id': self.vim_account
['_id']
,
'resource_uuid': resource_uuid,
'nsr_id': nsr_id,
'resource_uuid': resource_uuid,
'nsr_id': nsr_id,
+ 'ns_name': ns_name,
'vnf_member_index': vnf_member_index,
'vnf_member_index': vnf_member_index,
- 'vdur_name': vdur['name']
+ 'vdur_name': vdur['name'],
+ 'project_id': vnfr_project_id
}
try:
vm = self.nova.servers.get(resource_uuid)
}
try:
vm = self.nova.servers.get(resource_uuid)
@@
-83,10
+92,10
@@
class BaseOpenStackInfraCollector(BaseVimInfraCollector):
log.warning("VIM status is not OK: %s" % e)
return False
log.warning("VIM status is not OK: %s" % e)
return False
- def _build_keystone_client(self, vim_account
_id
) -> keystone_client.Client:
- sess = OpenstackUtils.get_session(vim_account
_id
)
+ def _build_keystone_client(self, vim_account
: dict
) -> keystone_client.Client:
+ sess = OpenstackUtils.get_session(vim_account)
return keystone_client.Client(session=sess)
return keystone_client.Client(session=sess)
- def _build_nova_client(self, vim_account
_id) -> nova_client_v2
.Client:
- sess = OpenstackUtils.get_session(vim_account
_id
)
+ def _build_nova_client(self, vim_account
: dict) -> nova_client
.Client:
+ sess = OpenstackUtils.get_session(vim_account)
return nova_client.Client("2", session=sess)
return nova_client.Client("2", session=sess)