コード例 #1
0
def play_command(power_group):
    """CLI endpoints for managing assets' power states & wallpower"""
    play_subp = power_group.add_subparsers()

    folder_action = play_subp.add_parser(
        "folder", help="Update user-defined script folder")
    folder_action.add_argument(
        "-p",
        "--path",
        type=str,
        required=True,
        help="Path to the folder containing playback scripts",
    )

    list_action = play_subp.add_parser(
        "list", help="List scripts available for execution")
    exec_action = play_subp.add_parser("execute",
                                       help="Execute a specific script")
    exec_action.add_argument("-p",
                             "--play",
                             type=str,
                             required=True,
                             help="Name of the play to be executed")

    # cli actions/callbacks
    folder_action.set_defaults(func=lambda args: IStateManager.set_play_path(
        os.path.abspath(os.path.expanduser(args["path"]))))

    list_action.set_defaults(
        func=lambda args: display_plays(IStateManager.plays()))

    exec_action.set_defaults(func=lambda args: IStateManager.execute_play(
        args["play"])  # TODO: handle invalid play
                             )
コード例 #2
0
ファイル: ws_server.py プロジェクト: pynnl/simengine-test
    def _handle_status_request(self, details):
        """Get overall system status/details including hardware assets;
        environment state & play details
        """

        assets = IStateManager.get_system_status(flatten=False)
        graph_ref = GraphReference()
        with graph_ref.get_session() as session:

            stage_layout = GraphReference.get_stage_layout(session)

            # send system topology and assets' power-interconnections
            self._write_data(
                details["client"],
                ServerToClientRequests.sys_layout,
                {"assets": assets, "stageLayout": stage_layout},
            )

        self._write_data(
            details["client"],
            ServerToClientRequests.ambient_upd,
            {"ambient": ISystemEnvironment.get_ambient(), "rising": False},
        )

        self._write_data(
            details["client"],
            ServerToClientRequests.play_list,
            {"plays": list(itertools.chain(*IStateManager.plays()))},
        )

        self._write_data(
            details["client"],
            ServerToClientRequests.mains_upd,
            {"mains": ISystemEnvironment.mains_status()},
        )