396: def create
397: if exists?
398: info "already exists"
399: return nil
400: end
401:
402:
403:
404:
405:
406:
407:
408: guid = %x{/usr/bin/uuidgen}.chomp
409:
410: exec_arg_vector = self.class.get_exec_preamble("-create", @resource[:name])
411: exec_arg_vector << @@ns_to_ds_attribute_map[:guid] << guid
412: begin
413: execute(exec_arg_vector)
414: rescue Puppet::ExecutionFailure => detail
415: fail("Could not set GeneratedUID for #{@resource.class.name} #{@resource.name}: #{detail}")
416: end
417:
418: if value = @resource.should(:password) and value != ""
419: self.class.set_password(@resource[:name], guid, value)
420: end
421:
422:
423: Puppet::Type.type(@resource.class.name).validproperties.each do |property|
424: next if property == :ensure
425: if value = @resource.should(property) and value != ""
426: if property == :members
427: add_members(nil, value)
428: else
429: exec_arg_vector = self.class.get_exec_preamble("-create", @resource[:name])
430: exec_arg_vector << @@ns_to_ds_attribute_map[symbolize(property)]
431: next if property == :password
432: exec_arg_vector << value.to_s
433: begin
434: execute(exec_arg_vector)
435: rescue Puppet::ExecutionFailure => detail
436: fail("Could not create #{@resource.class.name} #{@resource.name}: #{detail}")
437: end
438: end
439: end
440: end
441: end