Class: Octo::OctoEnvShow

Inherits:
Chef::Knife
  • Object
show all
Defined in:
lib/chef/knife/octo.rb

Instance Method Summary collapse

Instance Method Details

#runObject



839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
# File 'lib/chef/knife/octo.rb', line 839

def run
  if Chef::Config[:knife][:octo_instance].nil?
    ui.error("Please specify your Octopus Deploy instance in your knife config as -\nknife[:octo_instance] = 'MYOCTO.MYDOMAIN'")
    exit
  end
  if Chef::Config[:knife][:octo_apikey].nil?
    ui.error("Please specify your Octopus API key in your knife config as -\nknife[:octo_apikey]  = 'MYKEY'\nSee Also : https://octopus.com/docs/api-and-integration/api/how-to-create-an-api-key")
    exit
  end
  if name_args.size > 1
    ui.error("You provided two environments\nSupply only one environemnt or try quotes.")
    return
  end

  unless name_args.size == 1
    ui.error('Provide the env name!')
    return
  end

  octo_methods = OctoHelperMethods.new(Chef::Config[:knife][:octo_apikey],Chef::Config[:knife][:octo_instance])
  env_id = octo_methods.eid_from_name("#{name_args[0]}")
  if env_id['response'] == 'ok'

    request = octo_methods.generic_call('GET', "environments/#{env_id['message']}/machines", false)
    if config[:long]
      octo_methods.create_local_file_by_id('environments')
      print octo_methods.parse_env_deets(request['message'],true)
      print "\n"
      octo_methods.delete_local_file
    else
      print octo_methods.parse_env_deets(request['message'],false)
      print "\n"
    end
  else
    ui.error(env_id['message'])
  end
end