Sha256: 782637824a1ae1182fa14e11414e1b6b9b6548528d0da430b329edb7941fb246

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

# -*- coding: utf-8 -*-
require 'rexml/document'

module Dcmgr
  module Helpers
    module SnapshotStorageHelper
      
      def key(filename)
        File.join(@account_id, filename)
      end

      def execute(cmd, args)
        script_root_path = File.join(File.expand_path('../../../../',__FILE__), 'script')
        script = File.join(script_root_path, 'storage_service')
        cmd = "/usr/bin/env #{@env.join(' ')} %s " + cmd 
        args = [script] + args
        res = sh(cmd, args)
      
        if res[:stdout] != ''
          doc = REXML::Document.new res[:stdout]
          code = REXML::XPath.match( doc, "//Error/Code/text()" ).to_s
          message = REXML::XPath.match( doc, "//Error/Message/text()" ).to_s
          bucket_name = REXML::XPath.match( doc, "//Error/BucketName/text()" ).to_s
          request_id = REXML::XPath.match( doc, "//Error/RequestId/text()" ).to_s
          host_id = REXML::XPath.match( doc, "//Error/HostId/text()" ).to_s
          error_message = ["Snapshot execute error: ",cmd, code, message, bucket_name, request_id, host_id].join(',')
          raise error_message
        else
          res 
        end 
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
wakame-vdc-agents-11.12.0 lib/dcmgr/helpers/snapshot_storage_helper.rb
wakame-vdc-dcmgr-11.12.0 lib/dcmgr/helpers/snapshot_storage_helper.rb