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

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

Instance Method Summary collapse

Instance Method Details

#balanceObject



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

def balance
  response = get_balance

  Balance.new(response.body)
end

#currencyObject



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

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

#current_pricingObject



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# File 'lib/fog/cloudsigma/compute.rb', line 156

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.find 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



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

def current_pricing_levels
  resp = get_pricing(currency)

  resp.body['current']
end

#current_usageObject



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

def current_usage
  response = get_current_usage

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

#initialize(options = {}) ⇒ Object



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

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

  setup_connection(options)
end

#next_pricingObject



174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# File 'lib/fog/cloudsigma/compute.rb', line 174

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.find 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



132
133
134
135
136
# File 'lib/fog/cloudsigma/compute.rb', line 132

def next_pricing_levels
  resp = get_pricing(currency)

  resp.body['next']
end

#pricingObject



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

def pricing
  resp = get_princing(currency)

  resp.body['objects']
end

#profileObject



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

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

#subscription_pricingObject



138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/fog/cloudsigma/compute.rb', line 138

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.find 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