7e4bf7c1543567c06974bf353ec85e5bd0173ff6
1 # -*- coding: utf-8 -*-
3 # Copyright 2018 Whitestack, LLC
4 # *************************************************************
6 # This file is part of OSM Monitoring module
7 # All Rights Reserved to Whitestack, LLC
9 # Licensed under the Apache License, Version 2.0 (the "License"); you may
10 # not use this file except in compliance with the License. You may obtain
11 # a copy of the License at
13 # http://www.apache.org/licenses/LICENSE-2.0
15 # Unless required by applicable law or agreed to in writing, software
16 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
18 # License for the specific language governing permissions and limitations
21 # For those usages not covered by the Apache License, Version 2.0 please
22 # contact: bdiaz@whitestack.com or glavado@whitestack.com
28 from playhouse
.sqlite_ext
import SqliteExtDatabase
30 from osm_mon
.plugins
.OpenStack
.settings
import Config
32 log
= logging
.getLogger(__name__
)
33 cfg
= Config
.instance()
35 db
= SqliteExtDatabase('mon.db')
38 class BaseModel(Model
):
43 class VimCredentials(BaseModel
):
44 uuid
= CharField(unique
=True)
49 password
= CharField()
50 tenant_name
= CharField()
52 region_name
= CharField()
53 endpoint_type
= CharField()
55 class Alarm(BaseModel
):
56 alarm_id
= CharField()
57 credentials
= ForeignKeyField(VimCredentials
, backref
='alarms')
60 class DatabaseManager
:
61 def create_tables(self
):
64 db
.create_tables([VimCredentials
, Alarm
])
66 except Exception as e
:
67 log
.exception("Error creating tables: ")
69 def get_credentials(self
, vim_uuid
):
70 return VimCredentials
.get_or_none(VimCredentials
.uuid
== vim_uuid
)
72 def save_credentials(self
, vim_credentials
):
73 """Saves vim credentials. If a record with same uuid exists, overwrite it."""
74 exists
= VimCredentials
.get_or_none(VimCredentials
.uuid
== vim_credentials
.uuid
)
76 vim_credentials
.id = exists
.id
77 vim_credentials
.save()
79 def get_credentials_for_alarm_id(self
, alarm_id
, vim_type
):
80 alarm
= Alarm
.select() \
81 .where(Alarm
.alarm_id
== alarm_id
) \
82 .join(VimCredentials
) \
83 .where(VimCredentials
.type == vim_type
).get()
84 return alarm
.credentials
86 def save_alarm(self
, alarm_id
, vim_uuid
):
87 """Saves alarm. If a record with same id and vim_uuid exists, overwrite it."""
89 alarm
.alarm_id
= alarm_id
90 creds
= VimCredentials
.get(VimCredentials
.uuid
== vim_uuid
)
91 alarm
.credentials
= creds
92 exists
= Alarm
.select(Alarm
.alarm_id
== alarm
.alarm_id
) \
93 .join(VimCredentials
) \
94 .where(VimCredentials
.uuid
== vim_uuid
)
96 alarm
.id = exists
[0].id