Revision fb0fa957

b/Makefile.am
1870 1870
	    -DRAPI_GROUP="$(RAPI_GROUP)" \
1871 1871
	    -DCONFD_USER="$(CONFD_USER)" \
1872 1872
	    -DCONFD_GROUP="$(CONFD_GROUP)" \
1873
	    -DWCONFD_USER="$(WCONFD_USER)" \
1874
	    -DWCONFD_GROUP="$(WCONFD_GROUP)" \
1873 1875
	    -DKVMD_USER="$(KVMD_USER)" \
1874 1876
	    -DKVMD_GROUP="$(KVMD_GROUP)" \
1875 1877
	    -DLUXID_USER="$(LUXID_USER)" \
......
1957 1959
	  echo 's#@''GNTMASTERUSER@#$(MASTERD_USER)#g'; \
1958 1960
	  echo 's#@''GNTRAPIUSER@#$(RAPI_USER)#g'; \
1959 1961
	  echo 's#@''GNTCONFDUSER@#$(CONFD_USER)#g'; \
1962
	  echo 's#@''GNTWCONFDUSER@#$(WCONFD_USER)#g'; \
1960 1963
	  echo 's#@''GNTLUXIDUSER@#$(LUXID_USER)#g'; \
1961 1964
	  echo 's#@''GNTNODEDUSER@#$(NODED_USER)#g'; \
1962 1965
	  echo 's#@''GNTMONDUSER@#$(MOND_USER)#g'; \
......
1964 1967
	  echo 's#@''GNTADMINGROUP@#$(ADMIN_GROUP)#g'; \
1965 1968
	  echo 's#@''GNTCONFDGROUP@#$(CONFD_GROUP)#g'; \
1966 1969
	  echo 's#@''GNTNODEDGROUP@#$(NODED_GROUP)#g'; \
1970
	  echo 's#@''GNTWCONFDGROUP@#$(CONFD_GROUP)#g'; \
1967 1971
	  echo 's#@''GNTLUXIDGROUP@#$(LUXID_GROUP)#g'; \
1968 1972
	  echo 's#@''GNTMASTERDGROUP@#$(MASTERD_GROUP)#g'; \
1969 1973
	  echo 's#@''GNTMONDGROUP@#$(MOND_GROUP)#g'; \
b/configure.ac
228 228
   user_metad="${withval}metad";
229 229
   user_rapi="${withval}rapi";
230 230
   user_confd="${withval}confd";
231
   user_wconfd="${withval}wconfd";
231 232
   user_kvmd="$user_default";
232 233
   user_luxid="${withval}luxid";
233 234
   user_noded="$user_default";
......
236 237
   user_metad="$user_default";
237 238
   user_rapi="$user_default";
238 239
   user_confd="$user_default";
240
   user_wconfd="$user_default";
239 241
   user_kvmd="$user_default";
240 242
   user_luxid="$user_default";
241 243
   user_noded="$user_default";
......
244 246
AC_SUBST(METAD_USER, $user_metad)
245 247
AC_SUBST(RAPI_USER, $user_rapi)
246 248
AC_SUBST(CONFD_USER, $user_confd)
249
AC_SUBST(WCONFD_USER, $user_wconfd)
247 250
AC_SUBST(KVMD_USER, $user_kvmd)
248 251
AC_SUBST(LUXID_USER, $user_luxid)
249 252
AC_SUBST(NODED_USER, $user_noded)
......
259 262
  [group_rapi="${withval}rapi";
260 263
   group_admin="${withval}admin";
261 264
   group_confd="${withval}confd";
265
   group_wconfd="${withval}wconfd";
262 266
   group_kvmd="$group_default";
263 267
   group_luxid="${withval}luxid";
264 268
   group_masterd="${withval}masterd";
......
269 273
  [group_rapi="$group_default";
270 274
   group_admin="$group_default";
271 275
   group_confd="$group_default";
276
   group_wconfd="$group_default";
272 277
   group_kvmd="$group_default";
273 278
   group_luxid="$group_default";
274 279
   group_masterd="$group_default";
......
279 284
AC_SUBST(RAPI_GROUP, $group_rapi)
280 285
AC_SUBST(ADMIN_GROUP, $group_admin)
281 286
AC_SUBST(CONFD_GROUP, $group_confd)
287
AC_SUBST(WCONFD_GROUP, $group_wconfd)
282 288
AC_SUBST(KVMD_GROUP, $group_kvmd)
283 289
AC_SUBST(LUXID_GROUP, $group_luxid)
284 290
AC_SUBST(MASTERD_GROUP, $group_masterd)
......
292 298
AC_MSG_NOTICE([Running ganeti-metad as $group_metad:$group_metad])
293 299
AC_MSG_NOTICE([Running ganeti-rapi as $user_rapi:$group_rapi])
294 300
AC_MSG_NOTICE([Running ganeti-confd as $user_confd:$group_confd])
301
AC_MSG_NOTICE([Running ganeti-wconfd as $user_wconfd:$group_wconfd])
295 302
AC_MSG_NOTICE([Running ganeti-luxid as $user_luxid:$group_luxid])
296 303
AC_MSG_NOTICE([Group for daemons is $group_daemons])
297 304
AC_MSG_NOTICE([Group for clients is $group_admin])
b/doc/users/groupmemberships.in
1 1
@GNTMASTERUSER@ @GNTDAEMONSGROUP@
2 2
@GNTCONFDUSER@ @GNTDAEMONSGROUP@
3
@GNTWCONFDUSER@ @GNTDAEMONSGROUP@
3 4
@GNTLUXIDUSER@ @GNTDAEMONSGROUP@
4 5
@GNTRAPIUSER@ @GNTDAEMONSGROUP@
5 6
@GNTMONDUSER@ @GNTDAEMONSGROUP@
b/doc/users/groups.in
3 3
@GNTMASTERUSER@
4 4
@GNTRAPIUSER@
5 5
@GNTCONFDUSER@
6
@GNTWCONFDUSER@
6 7
@GNTLUXIDUSER@
7 8
@GNTMONDUSER@
b/doc/users/users.in
1 1
@GNTMASTERUSER@ @GNTMASTERDGROUP@
2 2
@GNTRAPIUSER@ @GNTRAPIGROUP@
3 3
@GNTCONFDUSER@ @GNTCONFDGROUP@
4
@GNTWCONFDUSER@ @GNTWCONFDGROUP@
4 5
@GNTLUXIDUSER@ @GNTLUXIDGROUP@
5 6
@GNTMONDUSER@ @GNTMONDGROUP@
6 7
@GNTNODEDUSER@
b/lib/runtime.py
79 79
  @ivar masterd_gid: The resolved gid of the masterd group
80 80
  @ivar confd_uid: The resolved uid of the confd user
81 81
  @ivar confd_gid: The resolved gid of the confd group
82
  @ivar wconfd_uid: The resolved uid of the wconfd user
83
  @ivar wconfd_gid: The resolved gid of the wconfd group
82 84
  @ivar luxid_uid: The resolved uid of the luxid user
83 85
  @ivar luxid_gid: The resolved gid of the luxid group
84 86
  @ivar rapi_uid: The resolved uid of the rapi user
......
99 101
    self.confd_uid = GetUid(constants.CONFD_USER, _getpwnam)
100 102
    self.confd_gid = GetGid(constants.CONFD_GROUP, _getgrnam)
101 103

  
104
    self.wconfd_uid = GetUid(constants.WCONFD_USER, _getpwnam)
105
    self.wconfd_gid = GetGid(constants.WCONFD_GROUP, _getgrnam)
106

  
102 107
    self.luxid_uid = GetUid(constants.LUXID_USER, _getpwnam)
103 108
    self.luxid_gid = GetGid(constants.LUXID_GROUP, _getgrnam)
104 109

  
......
118 123
    self._uid2user = {
119 124
      self.masterd_uid: constants.MASTERD_USER,
120 125
      self.confd_uid: constants.CONFD_USER,
126
      self.wconfd_uid: constants.WCONFD_USER,
121 127
      self.luxid_uid: constants.LUXID_USER,
122 128
      self.rapi_uid: constants.RAPI_USER,
123 129
      self.noded_uid: constants.NODED_USER,
......
127 133
    self._gid2group = {
128 134
      self.masterd_gid: constants.MASTERD_GROUP,
129 135
      self.confd_gid: constants.CONFD_GROUP,
136
      self.wconfd_gid: constants.WCONFD_GROUP,
130 137
      self.luxid_gid: constants.LUXID_GROUP,
131 138
      self.rapi_gid: constants.RAPI_GROUP,
132 139
      self.noded_gid: constants.NODED_GROUP,
b/src/AutoConf.hs.in
175 175
confdGroup :: String
176 176
confdGroup = "CONFD_GROUP"
177 177

  
178
wconfdUser :: String
179
wconfdUser = "WCONFD_USER"
180

  
181
wconfdGroup :: String
182
wconfdGroup = "WCONFD_GROUP"
183

  
178 184
kvmdUser :: String
179 185
kvmdUser = "KVMD_USER"
180 186

  
b/src/Ganeti/Constants.hs
218 218
confdGroup :: String
219 219
confdGroup = Runtime.daemonGroup (DaemonGroup GanetiConfd)
220 220

  
221
wconfdUser :: String
222
wconfdUser = Runtime.daemonUser GanetiWConfd
223

  
224
wconfdGroup :: String
225
wconfdGroup = Runtime.daemonGroup (DaemonGroup GanetiWConfd)
226

  
221 227
kvmdUser :: String
222 228
kvmdUser = Runtime.daemonUser GanetiKvmd
223 229

  
b/src/Ganeti/Runtime.hs
64 64
                  | GanetiNoded
65 65
                  | GanetiRapi
66 66
                  | GanetiConfd
67
                  | GanetiWConfd
67 68
                  | GanetiKvmd
68 69
                  | GanetiLuxid
69 70
                  | GanetiMond
......
86 87
daemonName GanetiNoded   = "ganeti-noded"
87 88
daemonName GanetiRapi    = "ganeti-rapi"
88 89
daemonName GanetiConfd   = "ganeti-confd"
90
daemonName GanetiWConfd  = "ganeti-wconfd"
89 91
daemonName GanetiKvmd    = "ganeti-kvmd"
90 92
daemonName GanetiLuxid   = "ganeti-luxid"
91 93
daemonName GanetiMond    = "ganeti-mond"
......
97 99
daemonOnlyOnMaster GanetiNoded   = False
98 100
daemonOnlyOnMaster GanetiRapi    = False
99 101
daemonOnlyOnMaster GanetiConfd   = False
102
daemonOnlyOnMaster GanetiWConfd  = True
100 103
daemonOnlyOnMaster GanetiKvmd    = False
101 104
daemonOnlyOnMaster GanetiLuxid   = True
102 105
daemonOnlyOnMaster GanetiMond    = False
......
108 111
daemonLogBase GanetiNoded   = "node-daemon"
109 112
daemonLogBase GanetiRapi    = "rapi-daemon"
110 113
daemonLogBase GanetiConfd   = "conf-daemon"
114
daemonLogBase GanetiWConfd  = "wconf-daemon"
111 115
daemonLogBase GanetiKvmd    = "kvm-daemon"
112 116
daemonLogBase GanetiLuxid   = "luxi-daemon"
113 117
daemonLogBase GanetiMond    = "monitoring-daemon"
......
119 123
daemonUser GanetiNoded   = AutoConf.nodedUser
120 124
daemonUser GanetiRapi    = AutoConf.rapiUser
121 125
daemonUser GanetiConfd   = AutoConf.confdUser
126
daemonUser GanetiWConfd  = AutoConf.wconfdUser
122 127
daemonUser GanetiKvmd    = AutoConf.kvmdUser
123 128
daemonUser GanetiLuxid   = AutoConf.luxidUser
124 129
daemonUser GanetiMond    = AutoConf.mondUser
......
130 135
daemonGroup (DaemonGroup GanetiNoded)   = AutoConf.nodedGroup
131 136
daemonGroup (DaemonGroup GanetiRapi)    = AutoConf.rapiGroup
132 137
daemonGroup (DaemonGroup GanetiConfd)   = AutoConf.confdGroup
138
daemonGroup (DaemonGroup GanetiWConfd)  = AutoConf.wconfdGroup
133 139
daemonGroup (DaemonGroup GanetiLuxid)   = AutoConf.luxidGroup
134 140
daemonGroup (DaemonGroup GanetiKvmd)    = AutoConf.kvmdGroup
135 141
daemonGroup (DaemonGroup GanetiMond)    = AutoConf.mondGroup
b/test/hs/Test/Ganeti/Runtime.hs
83 83
              \         constants.NODED_USER,\n\
84 84
              \         constants.RAPI_USER,\n\
85 85
              \         constants.CONFD_USER,\n\
86
              \         constants.WCONFD_USER,\n\
86 87
              \         constants.KVMD_USER,\n\
87 88
              \         constants.LUXID_USER,\n\
88 89
              \         constants.METAD_USER,\n\
......
92 93
              \          constants.NODED_GROUP,\n\
93 94
              \          constants.RAPI_GROUP,\n\
94 95
              \          constants.CONFD_GROUP,\n\
96
              \          constants.WCONFD_GROUP,\n\
95 97
              \          constants.KVMD_GROUP,\n\
96 98
              \          constants.LUXID_GROUP,\n\
97 99
              \          constants.METAD_GROUP,\n\
b/test/py/ganeti.runtime_unittest.py
42 42
    constants.RAPI_USER: _EntStub(uid=2),
43 43
    constants.NODED_USER: _EntStub(uid=3),
44 44
    constants.LUXID_USER: _EntStub(uid=4),
45
    constants.WCONFD_USER: _EntStub(uid=5),
45 46
    }
46 47
  return users[user]
47 48

  
......
55 56
    constants.ADMIN_GROUP: _EntStub(gid=4),
56 57
    constants.NODED_GROUP: _EntStub(gid=5),
57 58
    constants.LUXID_GROUP: _EntStub(gid=6),
59
    constants.WCONFD_GROUP: _EntStub(gid=7),
58 60
    }
59 61
  return groups[group]
60 62

  
......
86 88
                     _StubGetpwnam(constants.CONFD_USER).pw_uid)
87 89
    self.assertEqual(self.resolver.confd_gid,
88 90
                     _StubGetgrnam(constants.CONFD_GROUP).gr_gid)
91
    self.assertEqual(self.resolver.wconfd_uid,
92
                     _StubGetpwnam(constants.WCONFD_USER).pw_uid)
93
    self.assertEqual(self.resolver.wconfd_gid,
94
                     _StubGetgrnam(constants.WCONFD_GROUP).gr_gid)
89 95
    self.assertEqual(self.resolver.rapi_uid,
90 96
                     _StubGetpwnam(constants.RAPI_USER).pw_uid)
91 97
    self.assertEqual(self.resolver.rapi_gid,

Also available in: Unified diff