@@ -29,7 +29,7 @@ def self.instances
2929 def self . prefetch ( resources )
3030 users = instances
3131 resources . each do |name , resource |
32- provider = users . find { |user | user . username == ( resource [ :username ] ) && user . database == ( resource [ :database ] ) }
32+ provider = users . find { |user | user . username == resource [ :username ] && user . database == resource [ :database ] }
3333 resources [ name ] . provider = provider if provider
3434 end
3535 end
@@ -39,22 +39,21 @@ def self.prefetch(resources)
3939 def create
4040 if db_ismaster
4141 password_hash = @resource [ :password_hash ]
42-
43- if password_hash
44- elsif @resource [ :password ]
42+ if !password_hash && @resource [ :password ]
4543 password_hash = Puppet ::Util ::MongodbMd5er . md5 ( @resource [ :username ] , @resource [ :password ] )
4644 end
47- cmd_json = <<-EOS . gsub ( %r{^\s *} , '' ) . gsub ( %r{$\n } , '' )
48- {
49- "createUser": "#{ @resource [ :username ] } ",
50- "pwd": "#{ password_hash } ",
51- "customData": {"createdBy": "Puppet Mongodb_user['#{ @resource [ :name ] } ']"},
52- "roles": #{ @resource [ :roles ] . to_json } ,
53- "digestPassword": false
54- }
55- EOS
56-
57- mongo_eval ( "db.runCommand(#{ cmd_json } )" , @resource [ :database ] )
45+
46+ command = {
47+ createUser : @resource [ :username ] ,
48+ pwd : password_hash ,
49+ customData : {
50+ createdBy : "Puppet Mongodb_user['#{ @resource [ :name ] } ']"
51+ } ,
52+ roles : @resource [ :roles ] ,
53+ digestPassword : false
54+ }
55+
56+ mongo_eval ( "db.runCommand(#{ command . to_json } )" , @resource [ :database ] )
5857 else
5958 Puppet . warning 'User creation is available only from master host'
6059
@@ -64,12 +63,12 @@ def create
6463 @property_hash [ :password_hash ] = ''
6564 @property_hash [ :roles ] = @resource [ :roles ]
6665
67- exists? ? ( return true ) : ( return false )
66+ exists?
6867 end
6968 end
7069
7170 def destroy
72- mongo_eval ( "db.dropUser(' #{ @resource [ :username ] } ' )" )
71+ mongo_eval ( "db.dropUser(#{ @resource [ :username ] . to_json } )" )
7372 end
7473
7574 def exists?
@@ -78,45 +77,42 @@ def exists?
7877
7978 def password_hash = ( _value )
8079 if db_ismaster
81- cmd_json = <<-EOS . gsub ( %r{^\s *} , '' ) . gsub ( %r{$\n } , '' )
82- {
83- "updateUser": "#{ @resource [ :username ] } ",
84- "pwd": "#{ @resource [ :password_hash ] } ",
85- "digestPassword": false
80+ command = {
81+ updateUser : @resource [ :username ] ,
82+ pwd : @resource [ :password_hash ] ,
83+ digestPassword : false
8684 }
87- EOS
88- mongo_eval ( "db.runCommand(#{ cmd_json } )" , @resource [ :database ] )
85+
86+ mongo_eval ( "db.runCommand(#{ command . to_json } )" , @resource [ :database ] )
8987 else
9088 Puppet . warning 'User password operations are available only from master host'
9189 end
9290 end
9391
9492 def password = ( value )
9593 if mongo_26?
96- mongo_eval ( "db.changeUserPassword(' #{ @resource [ :username ] } ',' #{ value } ' )" , @resource [ :database ] )
94+ mongo_eval ( "db.changeUserPassword(#{ @resource [ :username ] . to_json } , #{ value . to_json } )" , @resource [ :database ] )
9795 else
98- cmd_json = <<-EOS . gsub ( %r{^\s *} , '' ) . gsub ( %r{$\n } , '' )
99- {
100- "updateUser": "#{ @resource [ :username ] } ",
101- "pwd": "#{ @resource [ :password ] } ",
102- "digestpassword": true
96+ command = {
97+ updateUser : @resource [ :username ] ,
98+ pwd : @resource [ :password ] ,
99+ digestpassword : true
103100 }
104- EOS
105101
106- mongo_eval ( "db.runCommand(#{ cmd_json } )" , @resource [ :database ] )
102+ mongo_eval ( "db.runCommand(#{ command . to_json } )" , @resource [ :database ] )
107103 end
108104 end
109105
110106 def roles = ( roles )
111107 if db_ismaster
112108 grant = roles - @property_hash [ :roles ]
113109 unless grant . empty?
114- mongo_eval ( "db.getSiblingDB(' #{ @resource [ :database ] } ' ).grantRolesToUser(' #{ @resource [ :username ] } ' , #{ grant . to_json } )" )
110+ mongo_eval ( "db.getSiblingDB(#{ @resource [ :database ] . to_json } ).grantRolesToUser(#{ @resource [ :username ] . to_json } , #{ grant . to_json } )" )
115111 end
116112
117113 revoke = @property_hash [ :roles ] - roles
118114 unless revoke . empty?
119- mongo_eval ( "db.getSiblingDB(' #{ @resource [ :database ] } ' ).revokeRolesFromUser(' #{ @resource [ :username ] } ' , #{ revoke . to_json } )" )
115+ mongo_eval ( "db.getSiblingDB(#{ @resource [ :database ] . to_json } ).revokeRolesFromUser(#{ @resource [ :username ] . to_json } , #{ revoke . to_json } )" )
120116 end
121117 else
122118 Puppet . warning 'User roles operations are available only from master host'
0 commit comments