ovirt_metrics 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/column.rb +15 -0
  3. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/database_statements.rb +170 -0
  4. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/explain_pretty_printer.rb +42 -0
  5. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/array.rb +70 -0
  6. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/bit.rb +52 -0
  7. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/bit_varying.rb +13 -0
  8. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/bytea.rb +15 -0
  9. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/cidr.rb +48 -0
  10. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/date_time.rb +21 -0
  11. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/decimal.rb +13 -0
  12. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/enum.rb +19 -0
  13. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/hstore.rb +59 -0
  14. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/inet.rb +13 -0
  15. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/json.rb +10 -0
  16. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/jsonb.rb +23 -0
  17. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/money.rb +39 -0
  18. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/point.rb +43 -0
  19. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/rails_5_1_point.rb +50 -0
  20. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/range.rb +93 -0
  21. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/specialized_string.rb +15 -0
  22. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/type_map_initializer.rb +109 -0
  23. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/uuid.rb +21 -0
  24. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/vector.rb +26 -0
  25. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid/xml.rb +28 -0
  26. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/oid.rb +31 -0
  27. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/quoting.rb +116 -0
  28. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/referential_integrity.rb +49 -0
  29. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/schema_definitions.rb +180 -0
  30. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/schema_dumper.rb +47 -0
  31. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/schema_statements.rb +682 -0
  32. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/type_metadata.rb +35 -0
  33. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql/utils.rb +77 -0
  34. data/lib/active_record/connection_adapters/ovirt_legacy_postgresql_adapter.rb +856 -0
  35. data/lib/{models → ovirt_metrics/models}/calendar.rb +0 -0
  36. data/lib/{models → ovirt_metrics/models}/cluster_configuration.rb +0 -0
  37. data/lib/{models → ovirt_metrics/models}/datacenter_configuration.rb +0 -0
  38. data/lib/{models → ovirt_metrics/models}/datacenter_daily_history.rb +0 -0
  39. data/lib/{models → ovirt_metrics/models}/datacenter_hourly_history.rb +0 -0
  40. data/lib/{models → ovirt_metrics/models}/datacenter_samples_history.rb +0 -0
  41. data/lib/{models → ovirt_metrics/models}/datacenter_storage_domain_map.rb +0 -0
  42. data/lib/{models → ovirt_metrics/models}/disks_vm_map.rb +0 -0
  43. data/lib/{models → ovirt_metrics/models}/enum_translator.rb +0 -0
  44. data/lib/{models → ovirt_metrics/models}/history_configuration.rb +0 -0
  45. data/lib/{models → ovirt_metrics/models}/host_configuration.rb +0 -0
  46. data/lib/{models → ovirt_metrics/models}/host_daily_history.rb +0 -0
  47. data/lib/{models → ovirt_metrics/models}/host_hourly_history.rb +0 -0
  48. data/lib/{models → ovirt_metrics/models}/host_interface_configuration.rb +0 -0
  49. data/lib/{models → ovirt_metrics/models}/host_interface_daily_history.rb +0 -0
  50. data/lib/{models → ovirt_metrics/models}/host_interface_hourly_history.rb +0 -0
  51. data/lib/{models → ovirt_metrics/models}/host_interface_samples_history.rb +0 -0
  52. data/lib/{models → ovirt_metrics/models}/host_samples_history.rb +0 -0
  53. data/lib/ovirt_metrics/models/ovirt_history.rb +12 -0
  54. data/lib/{models → ovirt_metrics/models}/period.rb +0 -0
  55. data/lib/{models → ovirt_metrics/models}/storage_domain_configuration.rb +0 -0
  56. data/lib/{models → ovirt_metrics/models}/storage_domain_daily_history.rb +0 -0
  57. data/lib/{models → ovirt_metrics/models}/storage_domain_hourly_history.rb +0 -0
  58. data/lib/{models → ovirt_metrics/models}/storage_domain_samples_history.rb +0 -0
  59. data/lib/{models → ovirt_metrics/models}/tag_details.rb +0 -0
  60. data/lib/{models → ovirt_metrics/models}/tag_relations_history.rb +0 -0
  61. data/lib/{models → ovirt_metrics/models}/vm_configuration.rb +0 -0
  62. data/lib/{models → ovirt_metrics/models}/vm_daily_history.rb +0 -0
  63. data/lib/{models → ovirt_metrics/models}/vm_disk_configuration.rb +0 -0
  64. data/lib/{models → ovirt_metrics/models}/vm_disk_daily_history.rb +0 -0
  65. data/lib/{models → ovirt_metrics/models}/vm_disk_hourly_history.rb +0 -0
  66. data/lib/{models → ovirt_metrics/models}/vm_disk_samples_history.rb +0 -0
  67. data/lib/{models → ovirt_metrics/models}/vm_disks_usage_daily_history.rb +0 -0
  68. data/lib/{models → ovirt_metrics/models}/vm_disks_usage_hourly_history.rb +0 -0
  69. data/lib/{models → ovirt_metrics/models}/vm_disks_usage_samples_history.rb +0 -0
  70. data/lib/{models → ovirt_metrics/models}/vm_hourly_history.rb +0 -0
  71. data/lib/{models → ovirt_metrics/models}/vm_interface_configuration.rb +0 -0
  72. data/lib/{models → ovirt_metrics/models}/vm_interface_daily_history.rb +0 -0
  73. data/lib/{models → ovirt_metrics/models}/vm_interface_hourly_history.rb +0 -0
  74. data/lib/{models → ovirt_metrics/models}/vm_interface_samples_history.rb +0 -0
  75. data/lib/{models → ovirt_metrics/models}/vm_samples_history.rb +0 -0
  76. data/lib/ovirt_metrics/version.rb +1 -1
  77. data/lib/ovirt_metrics.rb +11 -3
  78. metadata +114 -47
  79. data/lib/models/ovirt_history.rb +0 -24
@@ -0,0 +1,180 @@
1
+ module ActiveRecord
2
+ module ConnectionAdapters
3
+ module OvirtLegacyPostgreSQL
4
+ module ColumnMethods
5
+ # Defines the primary key field.
6
+ # Use of the native PostgreSQL UUID type is supported, and can be used
7
+ # by defining your tables as such:
8
+ #
9
+ # create_table :stuffs, id: :uuid do |t|
10
+ # t.string :content
11
+ # t.timestamps
12
+ # end
13
+ #
14
+ # By default, this will use the +uuid_generate_v4()+ function from the
15
+ # +uuid-ossp+ extension, which MUST be enabled on your database. To enable
16
+ # the +uuid-ossp+ extension, you can use the +enable_extension+ method in your
17
+ # migrations. To use a UUID primary key without +uuid-ossp+ enabled, you can
18
+ # set the +:default+ option to +nil+:
19
+ #
20
+ # create_table :stuffs, id: false do |t|
21
+ # t.primary_key :id, :uuid, default: nil
22
+ # t.uuid :foo_id
23
+ # t.timestamps
24
+ # end
25
+ #
26
+ # You may also pass a different UUID generation function from +uuid-ossp+
27
+ # or another library.
28
+ #
29
+ # Note that setting the UUID primary key default value to +nil+ will
30
+ # require you to assure that you always provide a UUID value before saving
31
+ # a record (as primary keys cannot be +nil+). This might be done via the
32
+ # +SecureRandom.uuid+ method and a +before_save+ callback, for instance.
33
+ def primary_key(name, type = :primary_key, **options)
34
+ options[:default] = options.fetch(:default, 'uuid_generate_v4()') if type == :uuid
35
+ super
36
+ end
37
+
38
+ def bigserial(*args, **options)
39
+ args.each { |name| column(name, :bigserial, options) }
40
+ end
41
+
42
+ def bit(*args, **options)
43
+ args.each { |name| column(name, :bit, options) }
44
+ end
45
+
46
+ def bit_varying(*args, **options)
47
+ args.each { |name| column(name, :bit_varying, options) }
48
+ end
49
+
50
+ def cidr(*args, **options)
51
+ args.each { |name| column(name, :cidr, options) }
52
+ end
53
+
54
+ def citext(*args, **options)
55
+ args.each { |name| column(name, :citext, options) }
56
+ end
57
+
58
+ def daterange(*args, **options)
59
+ args.each { |name| column(name, :daterange, options) }
60
+ end
61
+
62
+ def hstore(*args, **options)
63
+ args.each { |name| column(name, :hstore, options) }
64
+ end
65
+
66
+ def inet(*args, **options)
67
+ args.each { |name| column(name, :inet, options) }
68
+ end
69
+
70
+ def int4range(*args, **options)
71
+ args.each { |name| column(name, :int4range, options) }
72
+ end
73
+
74
+ def int8range(*args, **options)
75
+ args.each { |name| column(name, :int8range, options) }
76
+ end
77
+
78
+ def json(*args, **options)
79
+ args.each { |name| column(name, :json, options) }
80
+ end
81
+
82
+ def jsonb(*args, **options)
83
+ args.each { |name| column(name, :jsonb, options) }
84
+ end
85
+
86
+ def ltree(*args, **options)
87
+ args.each { |name| column(name, :ltree, options) }
88
+ end
89
+
90
+ def macaddr(*args, **options)
91
+ args.each { |name| column(name, :macaddr, options) }
92
+ end
93
+
94
+ def money(*args, **options)
95
+ args.each { |name| column(name, :money, options) }
96
+ end
97
+
98
+ def numrange(*args, **options)
99
+ args.each { |name| column(name, :numrange, options) }
100
+ end
101
+
102
+ def point(*args, **options)
103
+ args.each { |name| column(name, :point, options) }
104
+ end
105
+
106
+ def line(*args, **options)
107
+ args.each { |name| column(name, :line, options) }
108
+ end
109
+
110
+ def lseg(*args, **options)
111
+ args.each { |name| column(name, :lseg, options) }
112
+ end
113
+
114
+ def box(*args, **options)
115
+ args.each { |name| column(name, :box, options) }
116
+ end
117
+
118
+ def path(*args, **options)
119
+ args.each { |name| column(name, :path, options) }
120
+ end
121
+
122
+ def polygon(*args, **options)
123
+ args.each { |name| column(name, :polygon, options) }
124
+ end
125
+
126
+ def circle(*args, **options)
127
+ args.each { |name| column(name, :circle, options) }
128
+ end
129
+
130
+ def serial(*args, **options)
131
+ args.each { |name| column(name, :serial, options) }
132
+ end
133
+
134
+ def tsrange(*args, **options)
135
+ args.each { |name| column(name, :tsrange, options) }
136
+ end
137
+
138
+ def tstzrange(*args, **options)
139
+ args.each { |name| column(name, :tstzrange, options) }
140
+ end
141
+
142
+ def tsvector(*args, **options)
143
+ args.each { |name| column(name, :tsvector, options) }
144
+ end
145
+
146
+ def uuid(*args, **options)
147
+ args.each { |name| column(name, :uuid, options) }
148
+ end
149
+
150
+ def xml(*args, **options)
151
+ args.each { |name| column(name, :xml, options) }
152
+ end
153
+ end
154
+
155
+ class ColumnDefinition < ActiveRecord::ConnectionAdapters::ColumnDefinition
156
+ attr_accessor :array
157
+ end
158
+
159
+ class TableDefinition < ActiveRecord::ConnectionAdapters::TableDefinition
160
+ include ColumnMethods
161
+
162
+ def new_column_definition(name, type, options) # :nodoc:
163
+ column = super
164
+ column.array = options[:array]
165
+ column
166
+ end
167
+
168
+ private
169
+
170
+ def create_column_definition(name, type)
171
+ OvirtLegacyPostgreSQL::ColumnDefinition.new name, type
172
+ end
173
+ end
174
+
175
+ class Table < ActiveRecord::ConnectionAdapters::Table
176
+ include ColumnMethods
177
+ end
178
+ end
179
+ end
180
+ end
@@ -0,0 +1,47 @@
1
+ module ActiveRecord
2
+ module ConnectionAdapters
3
+ module OvirtLegacyPostgreSQL
4
+ module ColumnDumper
5
+ def column_spec_for_primary_key(column)
6
+ spec = super
7
+ if schema_type(column) == :uuid
8
+ spec[:default] ||= 'nil'
9
+ end
10
+ spec
11
+ end
12
+
13
+ # Adds +:array+ option to the default set
14
+ def prepare_column_options(column)
15
+ spec = super
16
+ spec[:array] = 'true' if column.array?
17
+ spec
18
+ end
19
+
20
+ # Adds +:array+ as a valid migration key
21
+ def migration_keys
22
+ super + [:array]
23
+ end
24
+
25
+ private
26
+
27
+ def default_primary_key?(column)
28
+ schema_type(column) == :serial
29
+ end
30
+
31
+ def schema_type(column)
32
+ return super unless column.serial?
33
+
34
+ if column.bigint?
35
+ :bigserial
36
+ else
37
+ :serial
38
+ end
39
+ end
40
+
41
+ def schema_expression(column)
42
+ super unless column.serial?
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end