-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest.py
113 lines (94 loc) · 2.96 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# Copyright 2016 Ifwe Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import time
import tagopsdb
def discover_models():
classes = []
for clsname in vars(tagopsdb).keys():
cls = getattr(tagopsdb, clsname)
if not isinstance(cls, type):
continue
if not issubclass(cls, tagopsdb.Base) or cls is tagopsdb.Base:
continue
classes.append(cls)
classes.sort(key=lambda x: x.__name__)
return classes
def test_model_and_direct_relationships(cls):
obj = cls.first()
if obj is None:
raise Exception('got None for %r', cls.__name__)
print cls.__name__ + ':', obj
for rel in obj.mapper.relationships:
val = getattr(obj, rel.key, None)
try:
val = iter(val).next()
except TypeError:
pass
except StopIteration:
print Exception(
'collection was empty! %s.%s',
cls.__name__,
rel.key
)
if val is None:
print Exception('got None for %r on %r', rel.key, obj)
print '\t'+rel.key+':', val
def test():
proj = tagopsdb.Project(name='abuse-finder-project')
pkg_def = tagopsdb.PackageDefinition(
deploy_type='rpm',
validation_type='matching',
name='abuse-finder-name',
path='abuse-finder-path',
arch='noarch',
build_type='jenkins',
build_host='javabuild',
)
name = tagopsdb.PackageName(
name='abuse-finder-package-name',
package_definition=pkg_def
)
loc = tagopsdb.PackageLocation(
name=pkg_def.name,
path=pkg_def.path,
arch=pkg_def.arch,
pkg_type=pkg_def.build_type,
build_host=pkg_def.build_host,
environment=False,
app_name='abuse-finder-app',
project_type='application',
)
proj.package_definitions.append(pkg_def)
proj.apps.append(tagopsdb.Application.first())
tagopsdb.Session.commit()
if __name__ == '__main__':
try:
tagopsdb.init(
url=dict(
username='tds',
password='bleepbloop',
host='localhost',
database='tds_%s' % int(time.time()),
),
create=True,
)
create_environments()
create_vlans()
create_ganglia()
create_applications()
test()
# import code
# code.interact(local=locals())
finally:
tagopsdb.destroy()