bin/pwn_bdba_groups in pwn-0.4.804 vs bin/pwn_bdba_groups in pwn-0.4.805

- old
+ new

@@ -13,11 +13,11 @@ options.on('-cCONFIG', '--config=CONFIG', '<Required - Black Duck Binary Analysis YAML config>') do |c| opts[:config] = c end - options.on('-CGROUP', '--create=GROUP', '<Required - Group/Sub-Group to Create>') do |g| + options.on('-CGROUP', '--create=GROUP', '<Optional - Group/Sub-Group to Create>') do |g| opts[:group_name] = g end options.on('-lNAME', '--list-group=NAME', '<Optional - List Group Details>') do |l| opts[:list_group_name] = l @@ -58,18 +58,33 @@ list_or_parent = list_group_name unless list_group_name.nil? list_or_parent = parent_group_name unless parent_group_name.nil? group_arr = groups_resp[:groups].select { |g| g[:name] == list_or_parent } - group_arr_sorted = group_arr.sort_by { |g| g[:id] } - group = group_arr_sorted.last - if list_group_name && group.nil? + if list_group_name && group_arr.empty? puts 'BDBA Group Not Found.' exit 1 end + group_arr_sorted = group_arr.sort_by { |g| g[:id] } + if group_arr_sorted.length > 1 + dup_groups_arr = [] + group_arr_sorted.each do |group| + this_group_id = group[:id] + this_group_details = PWN::Plugins::BlackDuckBinaryAnalysis.get_group_details( + token: token, + group_id: this_group_id + ) + dup_groups_arr.push(this_group_details[:group]) + end + + puts "ERROR: Multiple BDBA Groups Found:\n#{dup_groups_arr}" + exit 1 + end + + group = group_arr_sorted.last parent_id = group[:id] if list_group_name group_id = parent_id group_details_resp = PWN::Plugins::BlackDuckBinaryAnalysis.get_group_details( @@ -82,14 +97,16 @@ end group_name = opts[:group_name] raise "ERROR: BDBA Group Name Not Provided: #{group_name}" if group_name.nil? - PWN::Plugins::BlackDuckBinaryAnalysis.create_group( + create_group_resp = PWN::Plugins::BlackDuckBinaryAnalysis.create_group( token: token, name: group_name, parent_id: parent_id ) + + puts create_group_resp.to_json rescue SystemExit, Interrupt puts "\nGoodbye." rescue StandardError => e raise e end