From 2ec95a645fe156f4514f30ed57abf7061c219f85 Mon Sep 17 00:00:00 2001 From: zengchen Date: Thu, 31 Dec 2015 11:34:10 +0800 Subject: [PATCH] operation engine design Implements: blueprint operation-engine-design Change-Id: Icc9acc0c10a4ae586c78a87426df0dcd13e544e9 --- ...create_scheduled_operation_seq_diagram.png | Bin 0 -> 23930 bytes ...delete_scheduled_operation_seq_diagram.png | Bin 0 -> 17577 bytes .../operation_engine_architecture_diagram.png | Bin 0 -> 31969 bytes .../operation_engine_class_diagram.png | Bin 0 -> 58196 bytes .../operation_state_diagram.png | Bin 0 -> 27270 bytes .../create_scheduled_operation_seq_diagram.pu | 56 ++++++++++ .../delete_scheduled_operation_seq_diagram.pu | 43 ++++++++ .../operation_engine_class_diagram.pu | 79 ++++++++++++++ .../operation_engine_design.rst | 101 ++++++++++++++++++ .../operation_state_diagram.pu | 20 ++++ 10 files changed, 299 insertions(+) create mode 100644 doc/images/operation-engine/create_scheduled_operation_seq_diagram.png create mode 100644 doc/images/operation-engine/delete_scheduled_operation_seq_diagram.png create mode 100644 doc/images/operation-engine/operation_engine_architecture_diagram.png create mode 100644 doc/images/operation-engine/operation_engine_class_diagram.png create mode 100644 doc/images/operation-engine/operation_state_diagram.png create mode 100644 doc/source/specs/operation-engine/create_scheduled_operation_seq_diagram.pu create mode 100644 doc/source/specs/operation-engine/delete_scheduled_operation_seq_diagram.pu create mode 100644 doc/source/specs/operation-engine/operation_engine_class_diagram.pu create mode 100644 doc/source/specs/operation-engine/operation_engine_design.rst create mode 100644 doc/source/specs/operation-engine/operation_state_diagram.pu diff --git a/doc/images/operation-engine/create_scheduled_operation_seq_diagram.png b/doc/images/operation-engine/create_scheduled_operation_seq_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..8f83741c7c3849b9d6b81461bf0d4d962d7a5eff GIT binary patch literal 23930 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 QFoHNco2}MNOSjYi1_3HKmH+?% literal 0 HcmV?d00001 diff --git a/doc/images/operation-engine/delete_scheduled_operation_seq_diagram.png b/doc/images/operation-engine/delete_scheduled_operation_seq_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..84eefab6bfaee2ace5b344f5d571e0e3f44a1eb0 GIT binary patch literal 17577 zcmd73Wmr|+*FH)pqHY8XU<1-1NP~ieAcAx^NV7=^=@8f`igavJDJf}??oe_Af|Ak# z(%lVbF7Wxi&-=dr59eIxd^lW}xY&EHxn_)ck9*u>EPq9L3A}5h*Dx?J@T4Tglrb={ zIx#RX%W$#4Cx50ST)=-19iM4B8r!~fvobMt#E>wtF|jvvG(k`qxlx%rI=tt_iVrpw|X2ND;;>d5NMh1FAxvOeA{?i5n!!@N#MH{eM~v4 z{>VG}!5?FMwNJUjVpNJm?!mCc2FbwMqSl<_<6qTM+V^jl@^)->b_%R@CYa4UB4=ib zt$6xFlbUva4AUu7(I@XG6T^$NM`7ZwWzprk&#p1`h2;4JOWb>Qx8p~Mr3nc`&QZoq zT~UEcGlt5EzAkFigsk2`njYiBp8sn2%^OgKrE5vk4b`tyBdePzCnTmDE3G634S~f&-_y-@O_0)}E zn{I{N?26v+MmO;IDe1q;?d}w5-1og=LRI}vDcWrCV4sL*Y3*fraQnkEI`rJ|4OB zK5dKKH#i>MNR6svg!uIVX+m7v;Pj?9^mJ!Qvixu}7c(=%*PaJn!dn~MokHAOom
ML_>dHe0qL)-W22SB~|AHcIw+Q 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 aoZ&CXVp=`FQ}7kKU+S5>SpHLkH~$w3CUY48 literal 0 HcmV?d00001 diff --git a/doc/images/operation-engine/operation_engine_architecture_diagram.png b/doc/images/operation-engine/operation_engine_architecture_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..18c47ee6094788e6d6ad6391a415f8226e322f73 GIT binary patch literal 31969 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℘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 UBYk}I@C;$Ke literal 0 HcmV?d00001 diff --git a/doc/images/operation-engine/operation_engine_class_diagram.png b/doc/images/operation-engine/operation_engine_class_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9553d83ec8282f63ecdebae629ec531e286f64 GIT binary patch literal 58196 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%0DN5gPYVFdzMoMVWM?atTT+4A^6%0 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 AS:create scheduled operation +activate AS + +AS --> MQ:create scheduled operation +activate MQ + +MQ -> OE:create scheduled operation +activate OE + +OE -> DB:create operation and set status to init +activate DB + +DB --> OE:finish +deactivate DB + +OE -> DB:get trigger info +activate DB + +DB --> OE:trigger info +deactivate DB + +OE -> engine:register operation +activate engine + +engine --> OE:finish +deactivate engine + +OE -> DB:update operation's status to registered +activate DB + +DB --> OE:finish +deactivate DB + +OE -> MQ:finish +deactivate OE + +MQ -> AS:finish +deactivate MQ + +AS --> User:finish +deactivate AS + +@enduml + diff --git a/doc/source/specs/operation-engine/delete_scheduled_operation_seq_diagram.pu b/doc/source/specs/operation-engine/delete_scheduled_operation_seq_diagram.pu new file mode 100644 index 00000000..143fe595 --- /dev/null +++ b/doc/source/specs/operation-engine/delete_scheduled_operation_seq_diagram.pu @@ -0,0 +1,43 @@ +@startuml + +title delete scheduled operation +hide footbox + +actor User +participant API_Service as AS +participant OperationEngine as OE +participant Engine.Trigger as engine +participant DB + +User -> AS:delete scheduled operation +activate AS + +AS -> OE:delete scheduled operation +activate OE + +OE -> DB:update operation's status to deleted +activate DB + +DB --> OE:finish +deactivate DB + +OE -> engine:unregister operation +activate engine + +engine --> OE:finish +deactivate engine + +OE -> DB:delete operation +activate DB + +DB --> OE:finish +deactivate DB + +OE -> AS:finish +deactivate OE + +AS --> User:finish +deactivate AS + +@enduml + diff --git a/doc/source/specs/operation-engine/operation_engine_class_diagram.pu b/doc/source/specs/operation-engine/operation_engine_class_diagram.pu new file mode 100644 index 00000000..4911c7df --- /dev/null +++ b/doc/source/specs/operation-engine/operation_engine_class_diagram.pu @@ -0,0 +1,79 @@ +@startuml + +title OperationEngine class diagram + +class OperationEngineManager +abstract class BaseTrigger +abstract class Executor +class OperationManager +class ScheduledOperation +class TimeTrigger +class EventTrigger +interface Operation +class OperationExeInfo +class Trigger +class ProtectOperation +class DeleteCheckpointOperation + +OperationEngineManager *-- BaseTrigger +OperationEngineManager *-- Executor +OperationEngineManager *-- OperationManager +BaseTrigger -- ScheduledOperation +BaseTrigger "1" o-- "1" Executor +Executor -- ScheduledOperation +Executor -- OperationManager +Executor -- OperationExeInfo +OperationManager *-- Operation +BaseTrigger <|-- TimeTrigger +BaseTrigger <|-- EventTrigger +ScheduledOperation -- Trigger +Operation <|-- ProtectOperation +Operation <|-- DeleteCheckpointOperation + +abstract class BaseTrigger { +_executor: Executor + +register_operation(op_id, op_name, **kwargs) +unregister_operation(op_id, op_name) +} + +abstract class Executor { +submit_op(op_id, info) +} + +class ScheduledOperation { +id: uuid +name: string +operation_type:string +trigger_id:uuid +operation_definition:dict +} +note left: class of DB table scheduled_operations + +class Trigger { +id:uuid +type:string +properties:dict +} +note left: class of DB table triggers + +class OperationManager { +operation_obj_map:dict + +check_operation_definition(op_type, operation_definition) +execute_operation(op_type, operation_definition, operation_exe_info) +} + +interface Operation { +check_operation_definition(operation_definition) +execute(operation_definition, operation_exe_info) +} + +class OperationExeInfo { +id:uuid +extend_info:string +} +note "class of DB table operation_exe_infos" as N1 +OperationExeInfo -- N1 + +@enduml diff --git a/doc/source/specs/operation-engine/operation_engine_design.rst b/doc/source/specs/operation-engine/operation_engine_design.rst new file mode 100644 index 00000000..54705a13 --- /dev/null +++ b/doc/source/specs/operation-engine/operation_engine_design.rst @@ -0,0 +1,101 @@ + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + + +================ +Operation Engine +================ + +https://blueprints.launchpad.net/smaug/+spec/operation-engine-design + +Operation Engine is one of components in Smaug, which is responsable for triggering the operations +to execute when the time is up or event happens. + +Problem description +=================== +1.Define the operations and triggers(time or event) +2.Bind the operation with trigger and activate the trigger +3.Define the executor which will run the operations +4.Ensure the high availablity of Operation Engin Service + +Use Cases +--------- +1.CRUD operations and triggers + +Proposed Change +=============== + +Data model impact +----------------- +There are 5 relevant talbes in th DB. +1. triggers +2. services +3. scheduled_operations + These three tables are defined at `https://blueprints.launchpad.net/openstack/?searchtext=api-service-design`. + Please see the bp to get the details. + +4. scheduled_operation_states ++--------------------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++--------------------+--------------+------+-----+---------+----------------+ +| created_at | datetime | YES | | NULL | | +| updated_at | datetime | YES | | NULL | | +| deleted_at | datetime | YES | | NULL | | +| id | init(11) | NO | PRI | NULL | auto_increment | +| operation_id | varchar(36) | NO | | NULL | | +| service_id | int(11) | NO | | NULL | | +| state | varchar(32) | NO | | NULL | values: init | +| | | | | | registered | +| | | | | | triggered | +| | | | | | running | +| | | | | | deleted | +| deleted | tinyint(1) | NO | | NULL | | ++--------------------+--------------+------+-----+---------+----------------+ +FOREIGN KEY(operation_id) REFERENCES scheduled_operations(id) +FOREIGN KEY(service_id) REFERENCES Services(id) + +Please see the `images/operation-engine/operation_state_diagram.png` to get the state transition +of scheduled_operation_states.state + + +5. scheduled_operation_logs ++--------------------+--------------+------+-----+---------+------------------------+ +| Field | Type | Null | Key | Default | Extra | ++--------------------+--------------+------+-----+---------+------------------------+ +| created_at | datetime | YES | | NULL | | +| updated_at | datetime | YES | | NULL | | +| deleted_at | datetime | YES | | NULL | | +| id | int(11) | NO | PRI | NULL | auto_increment | +| operation_id | varchar(36) | NO | | NULL | | +| expect_start_time | datetime | YES | | NULL | | +| triggered_time | datetime | YES | | NULL | | +| actual_start_time | datetime | YES | | NULL | | +| end_time | datetime | YES | | NULL | | +| state | varchar(32) | NO | | NULL | values: | +| | | | | | in_progress | +| | | | | | sucdess | +| | | | | | failed | +| | | | | | dropped_out_of_window | +| extend_info | Text | YES | | NULL | execution info | +| deleted | tinyint(1) | NO | | NULL | | ++----------------------+--------------+------+-----+---------+----------------------+ +FOREIGN KEY(operation_id) REFERENCES scheduled_operations(id) + +instance: ++---------------------+---------------------+---------------------+-----+----------------------------------+ ++---------------------+---------------------+---------------------+---------------------+------------------+ ++---------------------+---------------------+ +| created_at | updated_at | deleted_at | id | opration_id | +| expect_start_time | triggered_time | actual_start_time | end_time | status | +| extend_info | deleted | ++---------------------+---------------------+---------------------+-----+----------------------------------+ ++---------------------+---------------------+---------------------+---------------------+------------------+ ++---------------------+---------------------+ +| 2016-01-01 01:00:02 | 2016-01-01 01:00:07 | NULL | 0 | 0354ca9ddcd046b693340d78759fd274 | +| 2016-01-01 01:00:00 | 2016-01-01 01:00:02 | 2016-01-01 01:00:05 | 2016-01-01 01:00:07 | success | +| NULL | 0 | ++---------------------+---------------------+---------------------+-----+----------------------------------+ ++---------------------+---------------------+---------------------+---------------------+------------------+ ++---------------------+---------------------+ diff --git a/doc/source/specs/operation-engine/operation_state_diagram.pu b/doc/source/specs/operation-engine/operation_state_diagram.pu new file mode 100644 index 00000000..ccb5e9e9 --- /dev/null +++ b/doc/source/specs/operation-engine/operation_state_diagram.pu @@ -0,0 +1,20 @@ +@startuml + +[*] --> init: create + +init --> registered: register to triggers + +registered --> triggered: trigger and submit to executor + +triggered --> running: executor runs it + +running --> registered: finish + +init --> deleted: delete +registered --> deleted: delete +triggered --> deleted: delete +running --> deleted: delete + +deleted --> [*] + +@enduml