class Fog::OpenStack::Metric::Mock

Public Class Methods

data() click to toggle source
# File lib/fog/openstack/metric.rb, line 35
def self.data
  @data ||= Hash.new do |hash, key|
    hash[key] = {
      :users   => {},
      :tenants => {}
    }
  end
end
new(options = {}) click to toggle source
# File lib/fog/openstack/metric.rb, line 48
def initialize(options = {})
  @openstack_username = options[:openstack_username]
  @openstack_tenant   = options[:openstack_tenant]
  @openstack_auth_uri = URI.parse(options[:openstack_auth_url])

  @auth_token = Fog::Mock.random_base64(64)
  @auth_token_expiration = (Time.now.utc + 86400).iso8601

  management_url = URI.parse(options[:openstack_auth_url])
  management_url.port = 8041
  management_url.path = '/v1'
  @openstack_management_url = management_url.to_s

  @data ||= {:users => {}}
  unless @data[:users].find { |u| u['name'] == options[:openstack_username] }
    id = Fog::Mock.random_numbers(6).to_s
    @data[:users][id] = {
      'id'       => id,
      'name'     => options[:openstack_username],
      'email'    => "#{options[:openstack_username]}@mock.com",
      'tenantId' => Fog::Mock.random_numbers(6).to_s,
      'enabled'  => true
    }
  end
end
reset() click to toggle source
# File lib/fog/openstack/metric.rb, line 44
def self.reset
  @data = nil
end

Public Instance Methods

credentials() click to toggle source
# File lib/fog/openstack/metric.rb, line 82
def credentials
  {:provider                 => 'openstack',
   :openstack_auth_url       => @openstack_auth_uri.to_s,
   :openstack_auth_token     => @auth_token,
   :openstack_management_url => @openstack_management_url}
end
data() click to toggle source
# File lib/fog/openstack/metric.rb, line 74
def data
  self.class.data[@openstack_username]
end
get_metric(_metric_id) click to toggle source
# File lib/fog/openstack/metric/requests/get_metric.rb, line 15
def get_metric(_metric_id)
  response = Excon::Response.new
  response.status = 200
  response.body = {
      "archive_policy" => {
          "aggregation_methods" => [
              "95pct",
              "median",
              "max",
              "count",
              "std",
              "sum",
              "min",
              "mean"
          ],
          "back_window" => 0,
          "definition"  => [
              {
                  "granularity" => "0:00:01",
                  "points"      => 3600,
                  "timespan"    => "1:00:00"
              },
              {
                  "granularity" => "0:01:00",
                  "points"      => 10080,
                  "timespan"    => "7 days, 0:00:00"
              },
              {
                  "granularity" => "1:00:00",
                  "points"      => 8760,
                  "timespan"    => "365 days, 0:00:00"
              }
          ],
          "name" => "high"
      },
      "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5",
      "created_by_user_id"    => "d040def9-fd68-45f0-a19f-253014f397c3",
      "id"                    => "8bbb5f02-b654-4861-b19e-d372fcdca124",
      "name"     => nil,
      "resource" => nil,
      "unit"     => nil
  }
  response
end
get_metric_measures(_metric_id, _options = {}) click to toggle source
# File lib/fog/openstack/metric/requests/get_metric_measures.rb, line 16
def get_metric_measures(_metric_id, _options = {})
  response = Excon::Response.new
  response.status = 200
  response.body = [
      {
          "timestamp" => "2014-10-06T14:33:57",
          "value"     => 43.1
      },
      {
          "timestamp" => "2014-10-06T14:34:12",
          "value"     => 12
      },
      {
          "timestamp" => "2014-10-06T14:34:20",
          "value"     => 2
      }
  ]
  response
end
get_resource(_resource_id) click to toggle source
# File lib/fog/openstack/metric/requests/get_resource.rb, line 15
def get_resource(_resource_id)
  response = Excon::Response.new
  response.status = 200
  response.body = {
      "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5",
      "created_by_user_id"    => "d040def9-fd68-45f0-a19f-253014f397c3",
      "ended_at"              => nil,
      "id"                    => "75c44741-cc60-4033-804e-2d3098c7d2e9",
      "metrics"               => {},
      "original_resource_id"  => "75C44741-CC60-4033-804E-2D3098C7D2E9",
      "project_id"            => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D",
      "revision_end"          => nil,
      "revision_start"        => "2016-11-08T11:23:45.989977+00:00",
      "started_at"            => "2016-11-08T11:23:45.989960+00:00",
      "type"                  => "generic",
      "user_id"               => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D"
  }
  response
end
get_resource_metric_measures(_resource_id, _metric_name, _options = {}) click to toggle source
# File lib/fog/openstack/metric/requests/get_resource_metric_measures.rb, line 16
def get_resource_metric_measures(_resource_id, _metric_name, _options = {})
  response = Excon::Response.new
  response.status = 200
  response.body = [
      [
          "2014-10-06T14:00:00+00:00",
          3600.0,
          24.7
      ],
      [
          "2014-10-06T14:34:00+00:00",
          60.0,
          15.5
      ],
      [
          "2014-10-06T14:34:12+00:00",
          1.0,
          6.0
      ],
      [
          "2014-10-06T14:34:20+00:00",
          1.0,
          25.0
      ]
  ]
  response
end
list_metrics(_options = {}) click to toggle source
# File lib/fog/openstack/metric/requests/list_metrics.rb, line 16
def list_metrics(_options = {})
  response = Excon::Response.new
  response.status = 200
  response.body = [
      {
          "archive_policy" => {
              "aggregation_methods" => [
                  "95pct",
                  "median",
                  "max",
                  "count",
                  "std",
                  "sum",
                  "min",
                  "mean"
              ],
              "back_window" => 0,
              "definition"  => [
                  {
                      "granularity" => "0:00:01",
                      "points"      => 3600,
                      "timespan"    => "1:00:00"
                  },
                  {
                      "granularity" => "0:01:00",
                      "points"      => 10080,
                      "timespan"    => "7 days, 0:00:00"
                  },
                  {
                      "granularity" => "1:00:00",
                      "points"      => 8760,
                      "timespan"    => "365 days, 0:00:00"
                  }
              ],
              "name" => "high"
          },
          "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5",
          "created_by_user_id"    => "d040def9-fd68-45f0-a19f-253014f397c3",
          "id"                    => "8bbb5f02-b654-4861-b19e-d372fcdca124",
          "name"                  => nil,
          "resource_id"           => nil,
          "unit"                  => nil
      },
      {
          "archive_policy" => {
              "aggregation_methods" => [
                  "95pct",
                  "median",
                  "max",
                  "count",
                  "std",
                  "sum",
                  "min",
                  "mean"
              ],
              "back_window" => 0,
              "definition" => [
                  {
                      "granularity" => "0:05:00",
                      "points"      => 12,
                      "timespan"    => "1:00:00"
                  },
                  {
                      "granularity" => "1:00:00",
                      "points"      => 24,
                      "timespan"    => "1 day, 0:00:00"
                  },
                  {
                      "granularity" => "1 day, 0:00:00",
                      "points"      => 30,
                      "timespan"    => "30 days, 0:00:00"
                  }
              ],
              "name" => "low"
          },
          "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5",
          "created_by_user_id"    => "d040def9-fd68-45f0-a19f-253014f397c3",
          "id"                    => "af3446dc-e20f-4ecf-aaaa-1240c05ff19b",
          "name"                  => nil,
          "resource_id"           => nil,
          "unit"                  => nil
      }
  ]
  response
end
list_resources(_type = "generic", _options = {}) click to toggle source
# File lib/fog/openstack/metric/requests/list_resources.rb, line 16
def list_resources(_type = "generic", _options = {})
  response = Excon::Response.new
  response.status = 200
  response.body = [
      {
          "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5",
          "created_by_user_id"    => "d040def9-fd68-45f0-a19f-253014f397c3",
          "ended_at"              => nil,
          "id"                    => "75c44741-cc60-4033-804e-2d3098c7d2e9",
          "metrics"               => {},
          "original_resource_id"  => "75C44741-CC60-4033-804E-2D3098C7D2E9",
          "project_id"            => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D",
          "revision_end"          => nil,
          "revision_start"        => "2016-11-08T11:23:45.989977+00:00",
          "started_at"            => "2016-11-08T11:23:45.989960+00:00",
          "type"                  => "generic",
          "user_id"               => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D"
      },
      {
          "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5",
          "created_by_user_id"    => "d040def9-fd68-45f0-a19f-253014f397c3",
          "ended_at"              => nil,
          "id"                    => "ab68da77-fa82-4e67-aba9-270c5a98cbcb",
          "metrics" => {
              "temperature" => "ed51c966-8890-4f4e-96c4-f0a753dbad42"
          },
          "original_resource_id" => "AB68DA77-FA82-4E67-ABA9-270C5A98CBCB",
          "project_id"           => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D",
          "revision_end"         => nil,
          "revision_start"       => "2016-11-08T11:23:46.177259+00:00",
          "started_at"           => "2016-11-08T11:23:46.177236+00:00",
          "type"                 => "generic",
          "user_id"              => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D"
      },
      {
          "created_by_project_id" => "384a902b-6856-424c-9d30-6b5325ac20a5",
          "created_by_user_id"    => "d040def9-fd68-45f0-a19f-253014f397c3",
          "ended_at"              => "2014-01-04T10:00:12+00:00",
          "id"                    => "6868da77-fa82-4e67-aba9-270c5ae8cbca",
          "metrics"               => {},
          "original_resource_id"  => "6868DA77-FA82-4E67-ABA9-270C5AE8CBCA",
          "project_id"            => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D",
          "revision_end"          => nil,
          "revision_start"        => "2016-11-08T11:23:46.781604+00:00",
          "started_at"            => "2014-01-02T23:23:34+00:00",
          "type"                  => "instance",
          "user_id"               => "BD3A1E52-1C62-44CB-BF04-660BD88CD74D"
      }
  ]
  response
end
reset_data() click to toggle source
# File lib/fog/openstack/metric.rb, line 78
def reset_data
  self.class.data.delete(@openstack_username)
end