Module: Fog::Compute::CloudSigma::CommonMockAndReal

Included in:
Mock, Real
Defined in:
lib/fog/cloudsigma/compute.rb

Instance Method Summary collapse

Instance Method Details

#balanceObject



96
97
98
99
100
# File 'lib/fog/cloudsigma/compute.rb', line 96

def balance
  response = get_balance

  Balance.new(response.body)
end

#currencyObject



108
109
110
111
112
# File 'lib/fog/cloudsigma/compute.rb', line 108

def currency
  # Cache since currency does not change
  @currency ||= profile.currency

end

#current_pricingObject



150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'lib/fog/cloudsigma/compute.rb', line 150

def current_pricing
  resp = get_pricing(currency)

  current_levels = resp.body['current']
  current_prices = resp.body['objects']

  current_pricing_pairs = current_levels.map do |resource, level|
    price_for_resource_and_level = current_prices.detect do |price|
      price['level'] == level && price['resource'] == resource
    end
    price_for_resource_and_level ||= {}

    [resource, price_for_resource_and_level]
  end

  Pricing.new(Hash[current_pricing_pairs])
end

#current_pricing_levelsObject



120
121
122
123
124
# File 'lib/fog/cloudsigma/compute.rb', line 120

def current_pricing_levels
  resp = get_pricing(currency)

  resp.body['current']
end

#current_usageObject



102
103
104
105
106
# File 'lib/fog/cloudsigma/compute.rb', line 102

def current_usage
  response = get_current_usage

  CurrentUsage.new(response.body['usage'])
end

#initialize(options = {}) ⇒ Object



85
86
87
88
89
# File 'lib/fog/cloudsigma/compute.rb', line 85

def initialize(options={})
  @init_options = options

  setup_connection(options)
end

#next_pricingObject



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/fog/cloudsigma/compute.rb', line 168

def next_pricing
  resp = get_pricing(currency)

  current_levels = resp.body['next']
  current_prices = resp.body['objects']

  current_pricing_pairs = current_levels.map do |resource, level|
    price_for_resource_and_level = current_prices.detect do |price|
      price['level'] == level && price['resource'] == resource
    end
    price_for_resource_and_level ||= {}

    [resource, price_for_resource_and_level]
  end

  Pricing.new(Hash[current_pricing_pairs])
end

#next_pricing_levelsObject



126
127
128
129
130
# File 'lib/fog/cloudsigma/compute.rb', line 126

def next_pricing_levels
  resp = get_pricing(currency)

  resp.body['next']
end

#pricingObject



114
115
116
117
118
# File 'lib/fog/cloudsigma/compute.rb', line 114

def pricing
  resp = get_princing(currency)

  resp.body['objects']
end

#profileObject



91
92
93
94
# File 'lib/fog/cloudsigma/compute.rb', line 91

def profile
  response = get_profile
  Profile.new(response.body)
end

#subscription_pricingObject



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/fog/cloudsigma/compute.rb', line 132

def subscription_pricing
  resp = get_pricing(currency, true)

  current_levels = resp.body['current']
  current_prices = resp.body['objects']

  current_pricing_pairs = current_levels.map do |resource, level|
    price_for_resource_and_level = current_prices.detect do |price|
      price['resource'] == resource
    end
    price_for_resource_and_level ||= {}

    [resource, price_for_resource_and_level]
  end

  Pricing.new(Hash[current_pricing_pairs])
end