Skip to content

Commit 5042d86

Browse files
author
manasdk
committed
Rename #1
1 parent 7b837e7 commit 5042d86

File tree

8 files changed

+215
-93
lines changed

8 files changed

+215
-93
lines changed

st2client/st2client/models/reactor.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88

99
class Trigger(core.Resource):
10-
_plural = 'Triggers'
10+
_plural = 'Triggertypes'
1111

1212

1313
class Rule(core.Resource):

st2common/st2common/models/api/reactor.py

+50-35
Original file line numberDiff line numberDiff line change
@@ -3,68 +3,83 @@
33

44
from st2common.models.base import BaseAPI
55
from st2common.models.api.stormbase import StormBaseAPI, StormFoundationAPI
6-
from st2common.models.db.reactor import RuleDB, ActionExecutionSpecDB, TriggerDB, AHTriggerDB
6+
from st2common.models.db.reactor import RuleDB, ActionExecutionSpecDB, TriggerTypeDB, TriggerDB
77
import st2common.validators.api.reactor as validator
88

99

10-
def get_id(identifiable):
11-
if identifiable is None:
12-
return ''
13-
return str(identifiable.id)
14-
15-
16-
def get_ref(identifiable):
17-
if identifiable is None:
18-
return {}
19-
return {'id': str(identifiable.id), 'name': identifiable.name}
20-
21-
22-
def get_model_from_ref(db_api, ref):
23-
if ref is None:
24-
return None
25-
model_id = ref['id'] if 'id' in ref else None
26-
if model_id is not None:
27-
return db_api.get_by_id(model_id)
28-
model_name = ref['name'] if 'name' in ref else None
29-
for model in db_api.query(name=model_name):
30-
return model
31-
return None
32-
33-
34-
class TriggerAPI(BaseAPI):
10+
class TriggerTypeAPI(BaseAPI):
3511
schema = {
36-
"type": "object"
12+
'type': 'object',
13+
'properties': {
14+
'id': {
15+
'type': 'string',
16+
'default': None
17+
},
18+
'name': {
19+
'type': 'string'
20+
},
21+
'description': {
22+
'type': 'string',
23+
'default': None
24+
},
25+
'payload_info': {
26+
'type': 'array'
27+
},
28+
'parameters_schema': {
29+
'type': 'object'
30+
}
31+
},
32+
'required': ['name'],
33+
'additionalProperties': False
3734
}
3835

3936
@classmethod
4037
def from_model(cls, model):
4138
trigger = model.to_mongo()
42-
trigger['name'] = str(trigger.pop('_id'))
39+
trigger['id'] = str(trigger.pop('_id'))
4340
return cls(**trigger)
4441

4542
@classmethod
46-
def to_model(cls, trigger):
47-
model = StormBaseAPI.to_model(TriggerDB, trigger)
48-
model.payload_info = trigger.payload_info
43+
def to_model(cls, triggertype):
44+
model = StormBaseAPI.to_model(TriggerTypeDB, triggertype)
45+
model.payload_info = triggertype.payload_info
46+
model.parameter_schema = triggertype.parameter_schema
4947
return model
5048

5149

52-
class AHTriggerAPI(BaseAPI):
50+
class TriggerAPI(BaseAPI):
5351
schema = {
54-
"type": "object"
52+
'type': 'object',
53+
'properties': {
54+
'id': {
55+
'type': 'string',
56+
'default': None
57+
},
58+
'name': {
59+
'type': 'string'
60+
},
61+
'type': {
62+
'type': 'string'
63+
},
64+
'parameters': {
65+
'type': 'object'
66+
}
67+
},
68+
'required': ['type'],
69+
'additionalProperties': False
5570
}
5671

5772
@classmethod
5873
def from_model(cls, model):
5974
trigger = model.to_mongo()
6075
trigger['name'] = str(trigger.pop('_id'))
61-
if trigger.has_key('type'):
76+
if 'type' in trigger:
6277
trigger['type'] = str(trigger.pop('type'))
6378
return cls(**trigger)
6479

6580
@classmethod
6681
def to_model(cls, trigger):
67-
model = StormFoundationAPI.to_model(AHTriggerDB, trigger)
82+
model = StormFoundationAPI.to_model(TriggerDB, trigger)
6883
model.name = trigger.name
6984
model.type = getattr(trigger, 'type', None)
7085
model.parameters = getattr(trigger, 'parameters', None)

st2common/st2common/models/base.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def set_defaults(validator, properties, instance, schema):
2626
instance.setdefault(property, subschema["default"])
2727

2828
return jsonschema.validators.extend(
29-
validator_class, {"properties" : set_defaults},
29+
validator_class, {"properties": set_defaults},
3030
)
3131

3232

@@ -100,4 +100,4 @@ def callfunction(*args, **kwargs):
100100

101101
return callfunction
102102

103-
return decorate
103+
return decorate

st2common/st2common/models/db/reactor.py

+6-25
Original file line numberDiff line numberDiff line change
@@ -3,38 +3,20 @@
33
from st2common.models.db.stormbase import StormBaseDB, StormFoundationDB
44

55

6-
class TriggerSourceDB(StormBaseDB):
7-
"""Source of a trigger. Typically an external system or service that
8-
generates events which must be adapted to a trigger using the provided
9-
adapter.
10-
Attribute:
11-
url: url of the source
12-
auth_token: token used by an adapter to authenticate with the
13-
adapter_file_uri: uri of the adapter which will translate an event
14-
specific to the source to a corresponding trigger.
15-
"""
16-
url = me.URLField()
17-
auth_token = me.StringField()
18-
adapter_file_uri = me.StringField()
19-
20-
21-
class TriggerDB(me.Document):
6+
class TriggerTypeDB(StormBaseDB):
227
"""Description of a specific kind/type of a trigger. The name is expected
238
uniquely identify a trigger in the namespace of all triggers provided
249
by a specific trigger_source.
2510
Attribute:
2611
trigger_source: Source that owns this trigger type.
2712
payload_info: Meta information of the expected payload.
2813
"""
29-
name = me.StringField(primary_key=True)
30-
description = me.StringField()
3114
payload_info = me.ListField()
3215
parameters_schema = me.DictField()
3316

3417

35-
class AHTriggerDB(me.Document):
36-
name = me.StringField(primary_key=True)
37-
type = me.ReferenceField(TriggerDB.__name__)
18+
class TriggerDB(StormBaseDB):
19+
type = me.DictField()
3820
parameters = me.DictField()
3921

4022

@@ -45,7 +27,7 @@ class TriggerInstanceDB(StormFoundationDB):
4527
payload (dict): payload specific to the occurrence.
4628
occurrence_time (datetime): time of occurrence of the trigger.
4729
"""
48-
trigger = me.ReferenceField(AHTriggerDB.__name__)
30+
trigger = me.DictField()
4931
payload = me.DictField()
5032
occurrence_time = me.DateTimeField()
5133

@@ -66,7 +48,7 @@ class RuleDB(StormBaseDB):
6648
status: enabled or disabled. If disabled occurrence of the trigger
6749
does not lead to execution of a action and vice-versa.
6850
"""
69-
trigger = me.ReferenceField(AHTriggerDB)
51+
trigger = me.DictField()
7052
criteria = me.DictField()
7153
action = me.EmbeddedDocumentField(ActionExecutionSpecDB)
7254
enabled = me.BooleanField(required=True, default=True,
@@ -88,9 +70,8 @@ class RuleEnforcementDB(StormFoundationDB):
8870

8971

9072
# specialized access objects
91-
triggersource_access = MongoDBAccess(TriggerSourceDB)
73+
triggertype_access = MongoDBAccess(TriggerTypeDB)
9274
trigger_access = MongoDBAccess(TriggerDB)
93-
ahtrigger_access = MongoDBAccess(AHTriggerDB)
9475
triggerinstance_access = MongoDBAccess(TriggerInstanceDB)
9576
rule_access = MongoDBAccess(RuleDB)
9677
ruleenforcement_access = MongoDBAccess(RuleEnforcementDB)

st2common/st2common/persistence/reactor.py

+4-13
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
from st2common.persistence import Access
2-
from st2common.models.db.reactor import triggersource_access, \
3-
trigger_access, triggerinstance_access, rule_access, \
4-
ruleenforcement_access, ahtrigger_access
2+
from st2common.models.db.reactor import triggertype_access, trigger_access, triggerinstance_access,\
3+
rule_access, ruleenforcement_access
54

65

7-
class TriggerSource(Access):
8-
IMPL = triggersource_access
6+
class TriggerType(Access):
7+
IMPL = triggertype_access
98

109
@classmethod
1110
def _get_impl(kls):
@@ -20,14 +19,6 @@ def _get_impl(kls):
2019
return kls.IMPL
2120

2221

23-
class AHTrigger(Access):
24-
IMPL = ahtrigger_access
25-
26-
@classmethod
27-
def _get_impl(kls):
28-
return kls.IMPL
29-
30-
3122
class TriggerInstance(Access):
3223
IMPL = triggerinstance_access
3324

st2reactorcontroller/st2reactorcontroller/controllers/root.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
from pecan import expose
22
from webob.exc import status_map
33

4-
import st2reactorcontroller.controllers.triggers
5-
import st2reactorcontroller.controllers.rules
4+
from st2reactorcontroller.controllers.triggers import TriggerTypeController, TriggerController, \
5+
TriggerInstanceController
6+
from st2reactorcontroller.controllers.rules import RuleController, RuleEnforcementController
67

78

89
class RootController(object):
910

10-
triggers = st2reactorcontroller.controllers.triggers.TriggerController()
11-
triggerinstances = \
12-
st2reactorcontroller.controllers.triggers.TriggerInstanceController()
13-
rules = st2reactorcontroller.controllers.rules.RuleController()
14-
ruleenforcements = \
15-
st2reactorcontroller.controllers.rules.RuleEnforcementController()
11+
triggertypes = TriggerTypeController()
12+
triggers = TriggerController()
13+
triggerinstances = TriggerInstanceController()
14+
rules = RuleController()
15+
ruleenforcements = RuleEnforcementController()
1616

1717
@expose(generic=True, template='index.html')
1818
def index(self):

st2reactorcontroller/st2reactorcontroller/controllers/rules.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
from pecan.rest import RestController
66
from st2common import log as logging
77
from st2common.exceptions.apivalidation import ValueValidationException
8-
from st2common.models.api.reactor import RuleAPI, RuleEnforcementAPI, AHTriggerAPI
8+
from st2common.models.api.reactor import RuleAPI, RuleEnforcementAPI, TriggerAPI
99
from st2common.models.db.reactor import RuleDB
1010
from st2common.models.base import jsexpose
11-
from st2common.persistence.reactor import Rule, RuleEnforcement, AHTrigger, Trigger
11+
from st2common.persistence.reactor import Rule, RuleEnforcement, TriggerType, Trigger
1212
from wsme import types as wstypes
1313

1414
LOG = logging.getLogger(__name__)
@@ -47,7 +47,6 @@ def get_all(self, name=None):
4747
LOG.debug('GET all /rules/ client_result=%s', rule_apis)
4848
return rule_apis
4949

50-
5150
@jsexpose(body=RuleAPI, status_code=httplib.CREATED)
5251
def post(self, rule):
5352
"""

0 commit comments

Comments
 (0)