Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
eec53347
Commit
eec53347
authored
May 31, 2013
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'devel' of
git://github.com/trbs/ansible
into groups
parents
43d96ba3
b537aff5
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
43 deletions
+31
-43
library/system/user
+31
-43
No files found.
library/system/user
View file @
eec53347
...
...
@@ -229,7 +229,7 @@ class User(object):
# select whether we dump additional debug info through syslog
self
.
syslogging
=
False
def
execute_command
(
self
,
cmd
):
def
execute_command
(
self
,
cmd
):
if
self
.
syslogging
:
syslog
.
openlog
(
'ansible-
%
s'
%
os
.
path
.
basename
(
__file__
))
syslog
.
syslog
(
syslog
.
LOG_NOTICE
,
'Command
%
s'
%
'|'
.
join
(
cmd
))
...
...
@@ -263,12 +263,9 @@ class User(object):
cmd
.
append
(
self
.
group
)
if
self
.
groups
is
not
None
:
if
self
.
groups
!=
''
:
for
g
in
self
.
groups
.
split
(
','
):
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
groups
=
self
.
get_groups_set
()
cmd
.
append
(
'-G'
)
cmd
.
append
(
self
.
groups
)
cmd
.
append
(
','
.
join
(
groups
)
)
if
self
.
comment
is
not
None
:
cmd
.
append
(
'-c'
)
...
...
@@ -326,12 +323,8 @@ class User(object):
if
current_groups
and
not
self
.
append
:
groups_need_mod
=
True
else
:
groups
=
self
.
groups
.
split
(
','
)
for
g
in
groups
:
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
group_diff
=
set
(
sorted
(
current_groups
))
.
symmetric_difference
(
set
(
sorted
(
groups
)))
groups
=
self
.
get_groups_set
()
group_diff
=
set
(
current_groups
)
.
symmetric_difference
(
groups
)
if
group_diff
:
if
self
.
append
:
...
...
@@ -370,6 +363,7 @@ class User(object):
return
(
0
,
''
,
''
)
cmd
.
append
(
self
.
name
)
open
(
"/tmp/xxx.log"
,
"a"
)
.
write
(
str
(
cmd
)
+
"
\n
"
)
return
self
.
execute_command
(
cmd
)
def
group_exists
(
self
,
group
):
...
...
@@ -391,11 +385,23 @@ class User(object):
else
:
return
list
(
grp
.
getgrnam
(
group
))
def
get_groups_set
(
self
):
if
self
.
groups
is
None
:
return
None
info
=
self
.
user_info
()
groups
=
set
(
self
.
groups
.
split
(
','
))
for
g
in
set
(
groups
):
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
if
info
and
self
.
group_info
(
g
)[
2
]
==
info
[
3
]:
groups
.
remove
(
g
)
return
groups
def
user_group_membership
(
self
):
groups
=
[]
info
=
self
.
get_pwd_info
()
for
group
in
grp
.
getgrall
():
if
self
.
name
in
group
.
gr_mem
and
info
[
3
]
==
group
.
gr_gid
:
if
self
.
name
in
group
.
gr_mem
and
not
info
[
3
]
==
group
.
gr_gid
:
groups
.
append
(
group
[
0
])
return
groups
...
...
@@ -574,11 +580,9 @@ class FreeBsdUser(User):
cmd
.
append
(
self
.
group
)
if
self
.
groups
is
not
None
:
for
g
in
self
.
groups
.
split
(
','
):
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
groups
=
self
.
get_groups_set
()
cmd
.
append
(
'-G'
)
cmd
.
append
(
self
.
groups
)
cmd
.
append
(
','
.
join
(
groups
)
)
if
self
.
createhome
:
cmd
.
append
(
'-m'
)
...
...
@@ -644,12 +648,9 @@ class FreeBsdUser(User):
if
self
.
groups
is
not
None
:
current_groups
=
self
.
user_group_membership
()
groups
=
self
.
groups
.
split
(
','
)
for
g
in
groups
:
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
groups
=
self
.
get_groups_set
()
group_diff
=
set
(
sorted
(
current_groups
))
.
symmetric_difference
(
set
(
sorted
(
groups
))
)
group_diff
=
set
(
current_groups
)
.
symmetric_difference
(
groups
)
groups_need_mod
=
False
if
group_diff
:
...
...
@@ -732,11 +733,9 @@ class SunOS(User):
cmd
.
append
(
self
.
group
)
if
self
.
groups
is
not
None
:
for
g
in
self
.
groups
.
split
(
','
):
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
groups
=
self
.
get_groups_set
()
cmd
.
append
(
'-G'
)
cmd
.
append
(
self
.
groups
)
cmd
.
append
(
','
.
join
(
groups
)
)
if
self
.
comment
is
not
None
:
cmd
.
append
(
'-c'
)
...
...
@@ -799,12 +798,8 @@ class SunOS(User):
if
self
.
groups
is
not
None
:
current_groups
=
self
.
user_group_membership
()
groups
=
self
.
groups
.
split
(
','
)
for
g
in
groups
:
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
group_diff
=
set
(
sorted
(
current_groups
))
.
symmetric_difference
(
set
(
sorted
(
groups
)))
groups
=
self
.
get_groups_set
()
group_diff
=
set
(
current_groups
)
.
symmetric_difference
(
groups
)
groups_need_mod
=
False
if
group_diff
:
...
...
@@ -901,11 +896,9 @@ class AIX(User):
cmd
.
append
(
self
.
group
)
if
self
.
groups
is
not
None
:
for
g
in
self
.
groups
.
split
(
','
):
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
groups
=
self
.
get_groups_set
()
cmd
.
append
(
'-G'
)
cmd
.
append
(
self
.
groups
)
cmd
.
append
(
','
.
join
(
groups
)
)
if
self
.
comment
is
not
None
:
cmd
.
append
(
'-c'
)
...
...
@@ -954,12 +947,8 @@ class AIX(User):
if
self
.
groups
is
not
None
:
current_groups
=
self
.
user_group_membership
()
groups
=
self
.
groups
.
split
(
','
)
for
g
in
groups
:
if
not
self
.
group_exists
(
g
):
self
.
module
.
fail_json
(
msg
=
"Group
%
s does not exist"
%
(
g
))
group_diff
=
set
(
sorted
(
current_groups
))
.
symmetric_difference
(
set
(
sorted
(
groups
)))
groups
=
self
.
get_groups_set
()
group_diff
=
set
(
current_groups
)
.
symmetric_difference
(
groups
)
groups_need_mod
=
False
if
group_diff
:
...
...
@@ -1113,7 +1102,6 @@ def main():
result
[
'comment'
]
=
info
[
4
]
result
[
'home'
]
=
info
[
5
]
result
[
'shell'
]
=
info
[
6
]
groups
=
user
.
user_group_membership
()
result
[
'uid'
]
=
info
[
2
]
if
user
.
groups
is
not
None
:
result
[
'groups'
]
=
user
.
groups
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment