Yes, I was planning to have a separate type for other ssm commands. But I got stuck with the current problem as I am not able to add any parameter beside existing.
On Thursday, May 25, 2017 at 1:44:15 PM UTC-4, Shawn Ferry wrote: > > > On May 25, 2017, at 1:19 PM, ggun <[email protected] <javascript:>> > wrote: > > Thank you, I will try the first option. I remember doing that but it did > not avoid the warnings. But I will retry. > > There is one last help I am looking for. if you have time to look into > below issue. > > https://groups.google.com/forum/#!topic/puppet-dev/9tkiructtYI > <https://groups.google.com/forum/#!topic/puppet-dev/9tkiructtYI> > > I have just added new parameter in the type and used the parameter command > and also mention in the init.pp ssm module call, but the module fails with > error > Error: no parameter named 'command' at > /etc/puppetlabs/code/environments/production/modules/xxx/manifests/init.pp:67 > on Ssm[RHELDiskManager] at > /etc/puppetlabs/code/environments/production/modules/xx/manifests/init.pp:67 > on node xxx > > This issue is happening for any new parameter that I am trying to add. Is > there a limit to the parameter that I can use in the type ? I don't think I > am overusing them. But don't know why is it failing > > > At a glance I don’t see anything that stands out for why it isn’t working > for you > > > > I think in general you shouldn’t call it a parameter command because it > may be confusing. I think it should work but maybe ‘operation’ instead. > You will also need to either add some generic arguments option to be able > to form complete commands or create a bunch of optional parameters that > apply only to the different operations. > > I don’t think this the correct approach. > > > You want to create multiple types e.g. ssm_create ssm_resize maybe > ssm_snapshot ssm_remove since they all have separate arguments and logic. > Trying to overload all of it into a single type is going to be harder the > further you go. > > > > > > > On Thursday, May 25, 2017 at 12:17:09 PM UTC-4, Shawn Ferry wrote: >> >> >> On May 24, 2017, at 10:02 PM, ggun <[email protected]> wrote: >> >> Hi Experts, >> >> Need your kind help in command to execute in the puppet provider. Below >> is the code snippet of the puppet provider code. >> If I run the code with changes as below the *code* runs without any issue >> >> >> *cmd="yes | #{create_ssm} create --fs '#{@resource[:fs_type]}' -p >> '#{@resource[:volume_group]}' -n '#{@resource[:logical_volume]}' >> '#{@resource[:mount_point]}'"* >> *system(cmd)* >> >> >> There are any number of bits of software that call themselves ssm. >> Assuming this is system storage manager why don’t you pass -f to make it >> non-interactive? >> >> commands => :ssm => ‘/usr/bin/ssm’ >> *args=%W[-f create --fs @resource[:fs_type] -p @resource[:volume_group] >> -n @resource[:logical_volume] @resource[:mount_point]]* >> ssm(*args) >> >> >> If that isn’t an option you could pass a file containing ‘yes’ >> *cmd=%W[ssm create --fs @resource[:fs_type] -p @resource[:volume_group] >> -n @resource[:logical_volume] @resource[:mount_point]]* >> Puppet::Util::Execution.execute(cmd, :stdinfile => ‘/path/to/yes-file’) >> >> >> >> >> But when I run code as below >> system('yes | ssm(*args)') # I am building args based on input and >> ssm is the commands as shown in below code snippet >> puppet run fails with error as >> *Error* >> sh: -c: line 0: syntax error near unexpected token `*args' >> sh: -c: line 0: `yes | ssm(*args)' >> >> Please help can I fix above run. >> >> >> *Code Snippets * >> >> commands :ssm => '/usr/bin/ssm', >> >> def create >> puts "Creating FileSystem” >> >> args = ['create'] >> if @resource[:fs_type] >> args.push('--fs', @resource[:fs_type]) >> else >> args.push('--fs', 'xfs') >> end >> if @resource[:volume_group] >> args.push('-p', @resource[:volume_group]) >> else >> puts "Default volume group will be creted and user needs to manage >> it" >> end >> if @resource[:logical_volume] >> args.push('-n', @resource[:logical_volume]) >> else >> puts "Default logical volume will be creted and user needs to >> manage it" >> end >> if @resource[:device] >> args << @resource[:device] >> end >> if @resource[:mount_point] >> FileUtils.mkdir_p(@resource[:mount_point]) unless >> File.exists?(@resource[:mount_point]) >> args << @resource[:mount_point] >> end >> p args >> # p cmd >> system('yes | ssm(*args)’) >> >> >> You really shouldn’t do that. Your invocation is off. The system call is >> not using you definition >> of ssm above it’s just finding it on the path and you need to expand your >> args system takes a string. >> >> args=%w(this is s a test) >> [5] pry(main)> system("yes | echo #{args.join(' ')}") >> this is s a test >> >> rescue Puppet::ExecutionFailure => detail >> raise Puppet::Error, "Could not create filesystem, volume group,and >> logical group. Due to error:(#{detail.message})" >> >> end >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/puppet-dev/6b4548f5-df77-45b8-b6de-849c6ba6144d%40googlegroups.com >> >> <https://groups.google.com/d/msgid/puppet-dev/6b4548f5-df77-45b8-b6de-849c6ba6144d%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> >> >> > -- > You received this message because you are subscribed to the Google Groups > "Puppet Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/puppet-dev/66eba19b-7926-4f77-a65d-92887937c7a7%40googlegroups.com > > <https://groups.google.com/d/msgid/puppet-dev/66eba19b-7926-4f77-a65d-92887937c7a7%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/824cbd6e-b63a-4012-b140-b00ec016d488%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
