4 #include <libdevmapper.h>
13 cli_list_paths (void * v, char ** reply, int * len, void * data)
15 struct vectors * vecs = (struct vectors *)data;
17 return show_paths(reply, len, vecs);
21 cli_list_maps (void * v, char ** reply, int * len, void * data)
23 struct vectors * vecs = (struct vectors *)data;
25 return show_maps(reply, len, vecs);
29 cli_add_path (void * v, char ** reply, int * len, void * data)
31 struct vectors * vecs = (struct vectors *)data;
32 char * param = get_keyparam(v, PATH);
34 if (blacklist(conf->blist, param)) {
35 *reply = strdup("blacklisted");
36 *len = strlen(*reply) + 1;
39 return uev_add_path(param, vecs);
43 cli_del_path (void * v, char ** reply, int * len, void * data)
45 struct vectors * vecs = (struct vectors *)data;
46 char * param = get_keyparam(v, PATH);
48 return uev_remove_path(param, vecs);
52 cli_add_map (void * v, char ** reply, int * len, void * data)
54 struct vectors * vecs = (struct vectors *)data;
55 char * param = get_keyparam(v, MAP);
57 return uev_add_map(param, vecs);
61 cli_del_map (void * v, char ** reply, int * len, void * data)
63 struct vectors * vecs = (struct vectors *)data;
64 char * param = get_keyparam(v, MAP);
66 return uev_remove_map(param, vecs);
70 cli_switch_group(void * v, char ** reply, int * len, void * data)
72 char * mapname = get_keyparam(v, MAP);
73 int groupnum = atoi(get_keyparam(v, GROUP));
75 return dm_switchgroup(mapname, groupnum);
79 cli_dump_pathvec(void * v, char ** reply, int * len, void * data)
81 struct vectors * vecs = (struct vectors *)data;
83 return dump_pathvec(reply, len, vecs);
87 cli_reconfigure(void * v, char ** reply, int * len, void * data)
89 struct vectors * vecs = (struct vectors *)data;
91 return reconfigure(vecs);
95 cli_suspend(void * v, char ** reply, int * len, void * data)
97 struct vectors * vecs = (struct vectors *)data;
98 char * param = get_keyparam(v, MAP);
99 int r = dm_simplecmd(DM_DEVICE_SUSPEND, param);
104 struct multipath * mpp = find_mp_by_alias(vecs->mpvec, param);
109 mpp->dmstate = MAPSTATE_SUSPENDED;
114 cli_resume(void * v, char ** reply, int * len, void * data)
116 struct vectors * vecs = (struct vectors *)data;
117 char * param = get_keyparam(v, MAP);
118 int r = dm_simplecmd(DM_DEVICE_RESUME, param);
123 struct multipath * mpp = find_mp_by_alias(vecs->mpvec, param);
128 mpp->dmstate = MAPSTATE_ACTIVE;
133 cli_reinstate(void * v, char ** reply, int * len, void * data)
135 struct vectors * vecs = (struct vectors *)data;
136 char * param = get_keyparam(v, PATH);
139 pp = find_path_by_dev(vecs->pathvec, param);
142 pp = find_path_by_devt(vecs->pathvec, param);
144 if (!pp || !pp->mpp || !pp->mpp->alias)
147 return dm_reinstate(pp->mpp->alias, pp->dev_t);
151 cli_fail(void * v, char ** reply, int * len, void * data)
153 struct vectors * vecs = (struct vectors *)data;
154 char * param = get_keyparam(v, PATH);
157 pp = find_path_by_dev(vecs->pathvec, param);
160 pp = find_path_by_devt(vecs->pathvec, param);
162 if (!pp || !pp->mpp || !pp->mpp->alias)
165 return dm_fail_path(pp->mpp->alias, pp->dev_t);