Pin black version in tox.ini to 23.12.1
[osm/N2VC.git] / reactive / native-ci.py
1 # Copyright 2019 Canonical Ltd.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 from charmhelpers.core.hookenv import (
16 action_fail,
17 action_set,
18 action_get,
19 status_set,
20 )
21 from charms.reactive import (
22 clear_flag,
23 set_flag,
24 when,
25 when_not,
26 )
27
28
29 @when_not('native-ci.installed')
30 def install_native_ci_charm():
31 set_flag('native-ci.installed')
32 status_set('active', 'Ready!')
33
34
35 @when('actions.test', 'native-ci.installed')
36 def test():
37 try:
38 result = True
39 except Exception as e:
40 action_fail('command failed: {}'.format(e))
41 else:
42 action_set({'output': result})
43 finally:
44 clear_flag('actions.test')
45
46
47 @when('actions.testint', 'native-ci.installed')
48 def testint():
49 try:
50 # Test the value is an int by performing a mathmatical operation on it.
51 intval = action_get('intval')
52 intval = intval + 1
53 except Exception as e:
54 action_fail('command failed: {}'.format(e))
55 else:
56 action_set({'output': intval})
57 finally:
58 clear_flag('actions.testint')
59
60
61 # @when('db.joined')
62 # def provides_db(db):
63 # """Simulate providing database credentials."""
64 # db.configure(
65 # database="mydb",
66 # user="myuser",
67 # password="mypassword",
68 # host="myhost",
69 # slave="myslave",
70 # )
71
72
73 # @when('db.available')
74 # def requires_db(db):
75 # """Simulate receiving database credentials."""
76 # pass