summaryrefslogtreecommitdiff
path: root/src/session.mli
blob: cb51075fbcc94a4bc5421a656f5b4c8ce3fac24b (plain)
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
type cfg_op =
    | CfgSet of string list * string option * Vyos1x.Config_tree.value_behaviour
    | CfgDelete of string list * string option

type world = {
    mutable running_config: Vyos1x.Config_tree.t;
    mutable reference_tree: Vyos1x.Reference_tree.t;
    vyconf_config: Vyconf_config.t;
    dirs: Directories.t
}

type aux_op = {
    script_name: string;
    tag_value: string option;
    changeset: cfg_op list;
} [@@deriving yojson]

type session_data = {
    modified: bool;
    conf_mode: bool;
    changeset: cfg_op list;
    mutable aux_changeset: aux_op list;
    edit_level: string list;
    client_app: string;
    client_pid: int32;
    client_user: string;
    client_sudo_user: string;
} [@@deriving yojson]

exception Session_error of string

val sprint_changeset : aux_op list -> string

val make : world -> string -> string -> string -> int32 -> session_data

val set_modified : session_data -> session_data

val validate : world -> session_data -> string list -> unit

val get_changeset : world -> session_data -> Vyos1x.Config_tree.t -> Vyos1x.Config_tree.t -> cfg_op list

val set : world -> session_data -> string list -> session_data

val delete : world -> session_data -> string list -> session_data

val aux_set : world -> session_data -> string list -> string -> string option -> unit

val aux_delete : world -> session_data -> string list -> string -> string option -> unit

val get_proposed_config : world -> session_data -> Vyos1x.Config_tree.t

val discard : world -> session_data -> session_data

val set_edit_level : world -> session_data -> string list -> session_data * string

val set_edit_level_up : world -> session_data -> session_data * string

val get_edit_level : world -> session_data -> string

val reset_edit_level : world -> session_data -> session_data * string

val edit_level_root : world -> session_data -> bool

val session_changed : world -> session_data -> bool

val load : world -> session_data -> string -> bool -> session_data

val merge : world -> session_data -> string -> bool -> session_data

val save : world -> session_data -> string -> session_data

val config_unsaved : world -> session_data -> string -> string -> bool

val get_value : world -> session_data -> string list -> string

val get_values : world -> session_data -> string list -> string list

val exists : world -> session_data -> string list -> bool

val list_children : world -> session_data -> string list -> string list

val string_of_op : cfg_op -> string

val write_running_cache : world -> (unit, string) result

val write_session_cache : world -> Vyos1x.Config_tree.t -> (unit, string) result

val prepare_commit : ?dry_run:bool -> world -> session_data -> Vyos1x.Config_tree.t -> string -> (Commitd_client.Commit.commit_data, string) result

val post_process_commit : world -> session_data -> Commitd_client.Commit.commit_data * Vyos1x.Config_tree.t -> Vyos1x.Config_tree.t * Vyos1x.Config_tree.t

val get_config : world -> session_data -> string -> string

val cleanup_config : world -> string -> unit

val show_config : world -> session_data -> string list -> string

val reference_path_exists : world -> session_data -> string list -> bool

val get_path_type : ?legacy_format:bool -> world -> session_data -> string list -> string

val get_completion_env : ?legacy_format:bool -> world -> session_data -> string list -> string

val copy : world -> session_data -> string list -> string list -> session_data

val rename : world -> session_data -> string list -> string list -> session_data