bcl 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/bcl/component_methods.rb +179 -160
- data/lib/bcl/version.rb +1 -1
- metadata +4 -4
| @@ -61,31 +61,32 @@ module BCL | |
| 61 61 | 
             
                end
         | 
| 62 62 |  | 
| 63 63 | 
             
                def default_yaml
         | 
| 64 | 
            -
                  settings = { :server => { :url => " | 
| 64 | 
            +
                  settings = { :server => { :url => "https://bcl.nrel.gov", :user => { :username => "ENTER_BCL_USERNAME", :password => "ENTER_BCL_PASSWORD"} } }
         | 
| 65 65 |  | 
| 66 66 | 
             
                  settings
         | 
| 67 67 | 
             
                end
         | 
| 68 | 
            -
             | 
| 68 | 
            +
                
         | 
| 69 | 
            +
                
         | 
| 69 70 | 
             
                def login(username=nil, password=nil)
         | 
| 70 71 | 
             
                  if username.nil? || password.nil?
         | 
| 71 72 | 
             
                    # log in via cached creditials
         | 
| 72 | 
            -
                    username = @config[:server][: | 
| 73 | 
            -
                    password = @config[:server][: | 
| 73 | 
            +
                    username = @config[:server][:user][:username]
         | 
| 74 | 
            +
                    password = @config[:server][:user][:password]
         | 
| 74 75 | 
             
                  end
         | 
| 75 76 |  | 
| 76 77 | 
             
                  #figure out what time to use
         | 
| 77 | 
            -
             | 
| 78 | 
            -
             | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 81 | 
            -
             | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 78 | 
            +
                  url = @config[:server][:url]
         | 
| 79 | 
            +
                  #look for http vs. https
         | 
| 80 | 
            +
                  if url.include? "https"
         | 
| 81 | 
            +
                    port = 443
         | 
| 82 | 
            +
                  else
         | 
| 83 | 
            +
                    port = 80
         | 
| 84 | 
            +
                  end
         | 
| 85 | 
            +
                  #strip out http(s)
         | 
| 86 | 
            +
                  url = url.gsub('http://', '')
         | 
| 87 | 
            +
                  url = url.gsub('https://', '')
         | 
| 88 | 
            +
                  
         | 
| 89 | 
            +
                  puts "Connecting to #{url} on port #{port} as #{username}"
         | 
| 89 90 |  | 
| 90 91 | 
             
                  @http = Net::HTTP.new(url, port)
         | 
| 91 92 | 
             
                  @http.use_ssl = true
         | 
| @@ -98,11 +99,10 @@ module BCL | |
| 98 99 |  | 
| 99 100 | 
             
                  res, data = @http.post(path, data, headers)
         | 
| 100 101 |  | 
| 101 | 
            -
             | 
| 102 | 
            +
                  #restClient wasn't working
         | 
| 102 103 | 
             
                  #res = RestClient.post "#{@config[:server][:url]}/api/user/login", data.to_json, :content_type => :json, :accept => :json
         | 
| 103 | 
            -
            		  
         | 
| 104 104 | 
             
                  if res.code == '200'
         | 
| 105 | 
            -
             | 
| 105 | 
            +
                    puts "Login Successful"
         | 
| 106 106 | 
             
            =begin
         | 
| 107 107 | 
             
            		  #OLD RESTCLIENT CODE
         | 
| 108 108 | 
             
                    #pull out the session key
         | 
| @@ -135,37 +135,37 @@ module BCL | |
| 135 135 |  | 
| 136 136 | 
             
            =end
         | 
| 137 137 |  | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 138 | 
            +
                    bnes = ""
         | 
| 139 | 
            +
                    bni = ""
         | 
| 140 | 
            +
                    junkout = res["set-cookie"].split(";")
         | 
| 141 | 
            +
                    junkout.each do |line|
         | 
| 142 | 
            +
                      if line =~ /BNES_SESS/
         | 
| 143 | 
            +
                       bnes = line.match(/(BNES_SESS.*)/)[0]
         | 
| 144 | 
            +
                      end
         | 
| 145 | 
            +
                    end
         | 
| 146 146 |  | 
| 147 | 
            -
             | 
| 148 | 
            -
             | 
| 149 | 
            -
             | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 147 | 
            +
                    junkout.each do |line|
         | 
| 148 | 
            +
                      if line =~ /BNI/
         | 
| 149 | 
            +
                       bni = line.match(/(BNI.*)/)[0]
         | 
| 150 | 
            +
                      end
         | 
| 151 | 
            +
                    end
         | 
| 152 152 |  | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 155 | 
            -
             | 
| 156 | 
            -
             | 
| 157 | 
            -
             | 
| 158 | 
            -
             | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
             | 
| 163 | 
            -
             | 
| 153 | 
            +
                    #puts "DATA: #{data}"
         | 
| 154 | 
            +
                    session_name = ""
         | 
| 155 | 
            +
                    sessid = ""
         | 
| 156 | 
            +
                    json = JSON.parse(data)
         | 
| 157 | 
            +
                    json.each do |key, val| 
         | 
| 158 | 
            +
                      if key == 'session_name'
         | 
| 159 | 
            +
                        session_name = val
         | 
| 160 | 
            +
                      elsif key == 'sessid'
         | 
| 161 | 
            +
                        sessid = val
         | 
| 162 | 
            +
                      end
         | 
| 163 | 
            +
                    end
         | 
| 164 164 |  | 
| 165 | 
            -
             | 
| 166 | 
            -
             | 
| 167 | 
            -
             | 
| 168 | 
            -
             | 
| 165 | 
            +
                    @session = session_name + '=' + sessid + ';' + bni + ";" + bnes
         | 
| 166 | 
            +
                      
         | 
| 167 | 
            +
                    #puts "SESSION COOKIE: #{@session}"
         | 
| 168 | 
            +
                    res
         | 
| 169 169 | 
             
                  else
         | 
| 170 170 |  | 
| 171 171 | 
             
                    puts "error code: #{res.code}"
         | 
| @@ -175,57 +175,65 @@ module BCL | |
| 175 175 | 
             
                  end
         | 
| 176 176 | 
             
                end
         | 
| 177 177 |  | 
| 178 | 
            -
             | 
| 179 | 
            -
                #  | 
| 180 | 
            -
                 | 
| 181 | 
            -
                # the component will be uploaded
         | 
| 182 | 
            -
                def push_content(filename_and_path, write_receipt_file, content_type)
         | 
| 178 | 
            +
                # pushes component to the bcl and publishes them (if logged-in as BCL Website Admin user).
         | 
| 179 | 
            +
                # username and password set in ~/.bcl/config.yml file
         | 
| 180 | 
            +
                def push_content(filename_and_path, write_receipt_file, content_type, bcl_group_id)
         | 
| 183 181 | 
             
                  raise "Please login before pushing components" if @session.nil?
         | 
| 184 | 
            -
             | 
| 185 182 | 
             
                  valid = false
         | 
| 186 183 | 
             
                  res_j = nil
         | 
| 187 184 | 
             
                  filename = File.basename(filename_and_path)
         | 
| 185 | 
            +
                  #TODO remove special characters in the filename; they create firewall errors
         | 
| 186 | 
            +
                  #filename = filename.gsub(/\W/,'_').gsub(/___/,'_').gsub(/__/,'_').chomp('_').strip
         | 
| 188 187 | 
             
                  filepath = File.dirname(filename_and_path) + "/"
         | 
| 189 | 
            -
             | 
| 190 188 | 
             
                  file = File.open(filename_and_path, 'rb')
         | 
| 191 189 | 
             
                  file_b64 = Base64.encode64(file.read)
         | 
| 192 | 
            -
                  @data = { | 
| 193 | 
            -
             | 
| 194 | 
            -
             | 
| 195 | 
            -
             | 
| 196 | 
            -
             | 
| 197 | 
            -
             | 
| 198 | 
            -
                            | 
| 199 | 
            -
             | 
| 200 | 
            -
             | 
| 201 | 
            -
             | 
| 202 | 
            -
             | 
| 190 | 
            +
                  @data = {
         | 
| 191 | 
            +
                          "file" =>
         | 
| 192 | 
            +
                           {
         | 
| 193 | 
            +
                             "file" => "#{file_b64}",
         | 
| 194 | 
            +
                             "filesize" => "#{File.size(filename_and_path)}",
         | 
| 195 | 
            +
                             "filename" => filename
         | 
| 196 | 
            +
                           },
         | 
| 197 | 
            +
                            "node" =>
         | 
| 198 | 
            +
                           {
         | 
| 199 | 
            +
                            "type" => "#{content_type}",
         | 
| 200 | 
            +
                            "og_group_ref" =>
         | 
| 201 | 
            +
                              {
         | 
| 202 | 
            +
                                "und" =>
         | 
| 203 | 
            +
                                  ["target_id" => bcl_group_id],
         | 
| 204 | 
            +
                                  "publish" => 1  #NOTE THIS ONLY WORKS IF YOU ARE A BCL SITE ADMIN
         | 
| 205 | 
            +
                              }
         | 
| 203 206 | 
             
                            }
         | 
| 204 | 
            -
             | 
| 205 | 
            -
             | 
| 207 | 
            +
                          }    
         | 
| 208 | 
            +
                  #restclient not working
         | 
| 206 209 | 
             
                  #res = RestClient.post "#{@config[:server][:url]}/api/content.json", @data.to_json, :content_type => :json, :cookies => @session
         | 
| 207 210 |  | 
| 208 | 
            -
             | 
| 209 | 
            -
             | 
| 211 | 
            +
                  path = "/api/content.json"	 
         | 
| 212 | 
            +
                  headers = {'Content-Type' => 'application/json', 'Cookie' => @session}
         | 
| 210 213 |  | 
| 211 | 
            -
             | 
| 214 | 
            +
                  res, data = @http.post(path, @data.to_json, headers)		
         | 
| 212 215 |  | 
| 216 | 
            +
                  res_j = "could not get json from http post response"
         | 
| 213 217 | 
             
                  if res.code == '200'
         | 
| 214 218 | 
             
                    res_j = JSON.parse(res.body)
         | 
| 215 | 
            -
             | 
| 216 | 
            -
                     | 
| 217 | 
            -
             | 
| 218 | 
            -
                     | 
| 219 | 
            -
             | 
| 220 | 
            -
             | 
| 221 | 
            -
                     | 
| 222 | 
            -
             | 
| 223 | 
            -
             | 
| 224 | 
            -
             | 
| 219 | 
            +
                    puts "200 - Successful Upload"
         | 
| 220 | 
            +
                    valid = true
         | 
| 221 | 
            +
                  elsif res.code == '404'
         | 
| 222 | 
            +
                    puts "error code: #{res.code}"
         | 
| 223 | 
            +
                    puts "error info: #{res.body}"
         | 
| 224 | 
            +
                    puts "404 - check these common causes first:"
         | 
| 225 | 
            +
                    puts "  the filename contains periods (other than the ones before the file extension)"
         | 
| 226 | 
            +
                    puts "  you are not an 'administrator member' of the group you're trying to upload to"
         | 
| 227 | 
            +
                    valid = false   
         | 
| 228 | 
            +
                  elsif res.code == '500'
         | 
| 229 | 
            +
                    puts "error code: #{res.code}"
         | 
| 230 | 
            +
                    puts "error info: #{res.body}"
         | 
| 231 | 
            +
                    raise "server exception"
         | 
| 232 | 
            +
                    valid = false
         | 
| 225 233 | 
             
                  else
         | 
| 226 234 | 
             
                    puts "error code: #{res.code}"
         | 
| 227 235 | 
             
                    puts "error info: #{res.body}"
         | 
| 228 | 
            -
                     | 
| 236 | 
            +
                    valid = false        
         | 
| 229 237 | 
             
                  end
         | 
| 230 238 |  | 
| 231 239 | 
             
                  if valid
         | 
| @@ -241,17 +249,18 @@ module BCL | |
| 241 249 | 
             
                  [valid, res_j]
         | 
| 242 250 | 
             
                end
         | 
| 243 251 |  | 
| 244 | 
            -
                def push_contents(array_of_components, skip_files_with_receipts, content_type)
         | 
| 252 | 
            +
                def push_contents(array_of_components, skip_files_with_receipts, content_type, bcl_group_id)
         | 
| 245 253 | 
             
                  logs = []
         | 
| 246 254 | 
             
                  array_of_components.each do |comp|
         | 
| 247 255 | 
             
                    receipt_file = File.dirname(comp) + "/" + File.basename(comp, '.tar.gz') + ".receipt"
         | 
| 248 256 | 
             
                    log_message = ""
         | 
| 249 257 | 
             
                    if skip_files_with_receipts && File.exists?(receipt_file)
         | 
| 250 | 
            -
                      log_message = "skipping  | 
| 258 | 
            +
                      log_message = "skipping because found receipt #{comp}"
         | 
| 259 | 
            +
                      puts log_message
         | 
| 251 260 | 
             
                    else
         | 
| 252 | 
            -
                      log_message = "pushing  | 
| 261 | 
            +
                      log_message = "pushing content #{File.basename(comp, '.tar.gz')}"
         | 
| 253 262 | 
             
                      puts log_message
         | 
| 254 | 
            -
                      valid, res = push_content(comp, true, content_type)
         | 
| 263 | 
            +
                      valid, res = push_content(comp, true, content_type, bcl_group_id)
         | 
| 255 264 | 
             
                      log_message += " #{valid} #{res.inspect.chomp}"
         | 
| 256 265 | 
             
                    end
         | 
| 257 266 | 
             
                    logs << log_message
         | 
| @@ -260,32 +269,37 @@ module BCL | |
| 260 269 | 
             
                  logs
         | 
| 261 270 | 
             
                end
         | 
| 262 271 |  | 
| 263 | 
            -
                # pushes updated  | 
| 264 | 
            -
                # set in ~/.bcl/config.yml file | 
| 265 | 
            -
                 | 
| 266 | 
            -
                def update_content(filename_and_path, write_receipt_file, uuid)
         | 
| 272 | 
            +
                # pushes updated content to the bcl and publishes it (if logged-in as BCL Website Admin user).
         | 
| 273 | 
            +
                # username and password set in ~/.bcl/config.yml file
         | 
| 274 | 
            +
                def update_content(filename_and_path, write_receipt_file, uuid, bcl_group_id)
         | 
| 267 275 | 
             
                  raise "Please login before pushing components" if @session.nil?
         | 
| 268 | 
            -
             | 
| 269 276 | 
             
                  valid = false
         | 
| 270 277 | 
             
                  res_j = nil
         | 
| 271 278 | 
             
                  filename = File.basename(filename_and_path)
         | 
| 279 | 
            +
                  #TODO remove special characters in the filename; they create firewall errors
         | 
| 280 | 
            +
                  #filename = filename.gsub(/\W/,'_').gsub(/___/,'_').gsub(/__/,'_').chomp('_').strip
         | 
| 272 281 | 
             
                  filepath = File.dirname(filename_and_path) + "/"
         | 
| 273 | 
            -
             | 
| 274 282 | 
             
                  file = File.open(filename_and_path, 'rb')
         | 
| 275 283 | 
             
                  file_b64 = Base64.encode64(file.read)
         | 
| 276 | 
            -
                  @data = { | 
| 277 | 
            -
             | 
| 278 | 
            -
             | 
| 279 | 
            -
             | 
| 280 | 
            -
             | 
| 281 | 
            -
             | 
| 284 | 
            +
                  @data = {
         | 
| 285 | 
            +
                          "file" =>
         | 
| 286 | 
            +
                           {
         | 
| 287 | 
            +
                             "file" => "#{file_b64}",
         | 
| 288 | 
            +
                             "filesize" => "#{File.size(filename_and_path)}",
         | 
| 289 | 
            +
                             "filename" => filename
         | 
| 290 | 
            +
                           },
         | 
| 282 291 | 
             
                           "node" =>
         | 
| 283 | 
            -
             | 
| 284 | 
            -
             | 
| 285 | 
            -
             | 
| 286 | 
            -
             | 
| 292 | 
            +
                           {
         | 
| 293 | 
            +
                            "uuid" => "#{uuid}",
         | 
| 294 | 
            +
                            "og_group_ref" =>
         | 
| 295 | 
            +
                              {
         | 
| 296 | 
            +
                                "und" =>
         | 
| 297 | 
            +
                                  ["target_id" => bcl_group_id],
         | 
| 298 | 
            +
                                  "publish" => 1  #NOTE THIS ONLY WORKS IF YOU ARE A BCL SITE ADMIN
         | 
| 299 | 
            +
                              }
         | 
| 287 300 | 
             
                            }
         | 
| 288 | 
            -
             | 
| 301 | 
            +
                          }
         | 
| 302 | 
            +
                            
         | 
| 289 303 | 
             
            		#restclient not working
         | 
| 290 304 | 
             
            		#res = RestClient.post "#{@config[:server][:url]}/api/content", @data.to_json, :content_type => :json, :cookies => @session, :accept => :json   
         | 
| 291 305 |  | 
| @@ -294,21 +308,28 @@ module BCL | |
| 294 308 |  | 
| 295 309 | 
             
            		res, data = @http.post(path, @data.to_json, headers)
         | 
| 296 310 |  | 
| 311 | 
            +
                  res_j = "could not get json from http post response"
         | 
| 297 312 | 
             
                  if res.code == '200'
         | 
| 298 313 | 
             
                    res_j = JSON.parse(res.body)
         | 
| 299 | 
            -
             | 
| 300 | 
            -
                     | 
| 301 | 
            -
             | 
| 302 | 
            -
                     | 
| 303 | 
            -
             | 
| 304 | 
            -
             | 
| 305 | 
            -
                     | 
| 306 | 
            -
             | 
| 307 | 
            -
                     | 
| 314 | 
            +
                    puts "200 - Successful Upload"
         | 
| 315 | 
            +
                    valid = true
         | 
| 316 | 
            +
                  elsif res.code == '404'
         | 
| 317 | 
            +
                    puts "error code: #{res.code}"
         | 
| 318 | 
            +
                    puts "error info: #{res.body}"
         | 
| 319 | 
            +
                    puts "404 - check these common causes first:"
         | 
| 320 | 
            +
                    puts "  the filename contains periods (other than the ones before the file extension)"
         | 
| 321 | 
            +
                    puts "  you are not an 'administrator member' of the group you're trying to upload to"
         | 
| 322 | 
            +
                    valid = false   
         | 
| 323 | 
            +
                  elsif res.code == '500'
         | 
| 324 | 
            +
                    puts "error code: #{res.code}"
         | 
| 325 | 
            +
                    puts "error info: #{res.body}"
         | 
| 326 | 
            +
                    raise "server exception"
         | 
| 327 | 
            +
                    valid = false
         | 
| 308 328 | 
             
                  else
         | 
| 309 329 | 
             
                    puts "error code: #{res.code}"
         | 
| 310 | 
            -
                     | 
| 311 | 
            -
             | 
| 330 | 
            +
                    puts "error info: #{res.body}"
         | 
| 331 | 
            +
                    valid = false        
         | 
| 332 | 
            +
                  end  
         | 
| 312 333 |  | 
| 313 334 | 
             
                  if valid
         | 
| 314 335 | 
             
                    #write out a receipt file into the same directory of the component with the same file name as
         | 
| @@ -323,64 +344,64 @@ module BCL | |
| 323 344 | 
             
                  [valid, res_j]
         | 
| 324 345 | 
             
                end
         | 
| 325 346 |  | 
| 326 | 
            -
            	def update_contents(array_of_components, skip_files_with_receipts)
         | 
| 347 | 
            +
            	def update_contents(array_of_components, skip_files_with_receipts, bcl_group_id)
         | 
| 327 348 | 
             
            	  logs = []
         | 
| 328 349 | 
             
            	  array_of_components.each do |comp|
         | 
| 329 | 
            -
             | 
| 330 | 
            -
             | 
| 331 | 
            -
             | 
| 332 | 
            -
             | 
| 333 | 
            -
             | 
| 334 | 
            -
            		  #extract uuid
         | 
| 335 | 
            -
                  if File.exists?(File.dirname(comp) + "/component.xml")
         | 
| 336 | 
            -
                    xml_filename = File.dirname(comp) + "/component.xml"
         | 
| 337 | 
            -
                  elsif File.exists?("#{Dir.pwd}/instances/#{File.basename(comp, '.tar.gz')}/measure.xml")
         | 
| 338 | 
            -
                    xml_filename = "#{Dir.pwd}/instances/#{File.basename(comp, '.tar.gz')}/measure.xml"		  
         | 
| 350 | 
            +
                  receipt_file = File.dirname(comp) + "/" + File.basename(comp, '.tar.gz') + ".receipt"
         | 
| 351 | 
            +
                  log_message = ""
         | 
| 352 | 
            +
                  if skip_files_with_receipts && File.exists?(receipt_file)
         | 
| 353 | 
            +
                    log_message = "skipping update because found receipt #{File.basename(comp)}"
         | 
| 354 | 
            +
                    puts log_message
         | 
| 339 355 | 
             
                  else
         | 
| 340 | 
            -
                     | 
| 341 | 
            -
                     | 
| 356 | 
            +
                    #extract uuid from the .tar.gz file
         | 
| 357 | 
            +
                    uuid = nil
         | 
| 358 | 
            +
                    tgz = Zlib::GzipReader.open(comp)
         | 
| 359 | 
            +
                    Archive::Tar::Minitar::Reader.open(tgz).each do |entry|
         | 
| 360 | 
            +
                      if entry.name == "component.xml" or entry.name == "measure.xml"
         | 
| 361 | 
            +
                        xml_file = LibXML::XML::Document.string(entry.read)
         | 
| 362 | 
            +
                        uid_node = xml_file.find('uid').first
         | 
| 363 | 
            +
                        uuid = uid_node.content
         | 
| 364 | 
            +
                        #vid_node = xml_file.find('version_id').first
         | 
| 365 | 
            +
                        #vid = vid_node.content
         | 
| 366 | 
            +
                        #puts "uuid = #{uuid}; vid = #{vid}"
         | 
| 367 | 
            +
                      end
         | 
| 368 | 
            +
                    end
         | 
| 369 | 
            +
                    if uuid == nil
         | 
| 370 | 
            +
                      log_message "ERROR: uuid not found for #{File.basename(comp)}"
         | 
| 371 | 
            +
                      puts log_message
         | 
| 372 | 
            +
                    else
         | 
| 373 | 
            +
                      log_message = "pushing updated content #{File.basename(comp)}"
         | 
| 374 | 
            +
                      puts log_message
         | 
| 375 | 
            +
                      valid, res = update_content(comp, true, uuid, bcl_group_id)
         | 
| 376 | 
            +
                      log_message += " #{valid} #{res.inspect.chomp}"
         | 
| 377 | 
            +
                    end
         | 
| 342 378 | 
             
                  end
         | 
| 343 | 
            -
                   | 
| 344 | 
            -
            		  xml_file = parser.parse
         | 
| 345 | 
            -
            		  uid_node = xml_file.find('uid').first
         | 
| 346 | 
            -
            		  uuid = uid_node.content
         | 
| 347 | 
            -
            		  if uuid == nil
         | 
| 348 | 
            -
            			log_message "ERROR: uuid not found for #{File.basename(comp)}"
         | 
| 349 | 
            -
            			puts log_message
         | 
| 350 | 
            -
            		  else
         | 
| 351 | 
            -
            			log_message = "pushing updated component #{uuid}: #{File.basename(comp)}"
         | 
| 352 | 
            -
            			puts log_message
         | 
| 353 | 
            -
            			valid, res = update_content(comp, true, uuid)
         | 
| 354 | 
            -
            			log_message += " #{valid} #{res.inspect.chomp}"
         | 
| 355 | 
            -
            		  end
         | 
| 356 | 
            -
            		end
         | 
| 357 | 
            -
            		logs << log_message
         | 
| 379 | 
            +
                  logs << log_message
         | 
| 358 380 | 
             
            	  end
         | 
| 359 | 
            -
             | 
| 381 | 
            +
                logs		
         | 
| 360 382 | 
             
            	end
         | 
| 361 383 |  | 
| 362 | 
            -
             | 
| 363 | 
            -
             | 
| 364 | 
            -
             | 
| 365 | 
            -
             | 
| 366 | 
            -
             | 
| 384 | 
            +
              # Simple method to search bcl and return the result as an XML object
         | 
| 385 | 
            +
              def search(search_str)
         | 
| 386 | 
            +
                full_url = "#{@config[:server][:url]}/api/search/#{search_str}&api_version=#{@api_version}"
         | 
| 387 | 
            +
                res = RestClient.get "#{full_url}"
         | 
| 388 | 
            +
                xml = LibXML::XML::Document.string(res.body)
         | 
| 367 389 |  | 
| 368 | 
            -
             | 
| 369 | 
            -
             | 
| 390 | 
            +
                xml
         | 
| 391 | 
            +
              end
         | 
| 370 392 |  | 
| 371 393 | 
             
            	# Delete receipt files
         | 
| 372 394 | 
             
            	def delete_receipts(array_of_components)
         | 
| 373 395 | 
             
            	  array_of_components.each do |comp|
         | 
| 374 | 
            -
             | 
| 375 | 
            -
             | 
| 376 | 
            -
             | 
| 377 | 
            -
             | 
| 378 | 
            -
             | 
| 396 | 
            +
                  receipt_file = File.dirname(comp) + "/" + File.basename(comp, '.tar.gz') + ".receipt"
         | 
| 397 | 
            +
                  if File.exists?(receipt_file)
         | 
| 398 | 
            +
                    FileUtils.remove_file(receipt_file)
         | 
| 399 | 
            +
                  
         | 
| 400 | 
            +
                  end
         | 
| 379 401 | 
             
            	  end
         | 
| 380 402 | 
             
            	end
         | 
| 381 | 
            -
             | 
| 382 | 
            -
             | 
| 383 | 
            -
              end
         | 
| 403 | 
            +
              
         | 
| 404 | 
            +
              end #class ComponentMethods
         | 
| 384 405 |  | 
| 385 406 | 
             
              # TODO make this extend the component_xml class (or create a super class around components)
         | 
| 386 407 |  | 
| @@ -417,7 +438,7 @@ module BCL | |
| 417 438 | 
             
                  FileUtils.cp(targz.to_s, destination_file)
         | 
| 418 439 | 
             
                end
         | 
| 419 440 |  | 
| 420 | 
            -
                #gather all the  | 
| 441 | 
            +
                #gather all the .tar.gz files into a single tar.gz
         | 
| 421 442 | 
             
                (1..chunk_cnt).each do |cnt|
         | 
| 422 443 | 
             
                  currentdir = Dir.pwd
         | 
| 423 444 |  | 
| @@ -440,6 +461,4 @@ module BCL | |
| 440 461 |  | 
| 441 462 | 
             
              end
         | 
| 442 463 |  | 
| 443 | 
            -
             | 
| 444 | 
            -
             | 
| 445 464 | 
             
            end # module BCL
         | 
    
        data/lib/bcl/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: bcl
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 23
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 3
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.3. | 
| 9 | 
            +
              - 2
         | 
| 10 | 
            +
              version: 0.3.2
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Daniel Macumber
         | 
| @@ -18,7 +18,7 @@ autorequire: | |
| 18 18 | 
             
            bindir: bin
         | 
| 19 19 | 
             
            cert_chain: []
         | 
| 20 20 |  | 
| 21 | 
            -
            date: 2013-09- | 
| 21 | 
            +
            date: 2013-09-27 00:00:00 Z
         | 
| 22 22 | 
             
            dependencies: 
         | 
| 23 23 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 24 24 | 
             
              name: uuid
         |