packageiq 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3f59aa0bafa14cd72f86a6883cb9eed1fe0f6181
4
- data.tar.gz: 91207153f8dc05482b0e76532c359e0125ae6318
3
+ metadata.gz: 13cabd108b556704036440b3d81d080a240474fa
4
+ data.tar.gz: 846f9df4e844d3c4695ae21bc770763dea39b8dc
5
5
  SHA512:
6
- metadata.gz: a1bbe801925a0c3cf3906e4a068327e95353a6c00ef401831138392b16dc9ab1862b48763b2244e2ba7795d96d3030b7e1a8150177f55e4f7998dbbb081b722f
7
- data.tar.gz: 889ced6a5ae5fe6025a6826adb79125e832d23624974d6a66fe00d6916bbbbde8788b3bd80796890b87ee13d632a7d3d0862ff96220edebe72ad36760c71fb28
6
+ metadata.gz: d03e7146e6e3bb1dbda41cb3288d1e3082cfe04736e5cac45b0b6e182997b4803544ff09c70063948cd9d1e4ad1687b0d5b3f733520d7c0527145c5fb61c8b7c
7
+ data.tar.gz: ecff6b00c67880e0bfc2ad512389dbcba774cf0e7ce9b69859e0854bbe4dcb362dfed445079e9bd86851646e6aca9c5d643ac079f4b1ec4db1ea52a97cce7651
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
  /tmp/
10
10
  /.ruby-version
11
11
  /scratch/
12
+ /build/pkg/
13
+ /build/recipes/cache/
data/build/Dockerfile ADDED
@@ -0,0 +1,26 @@
1
+ FROM centos:7
2
+
3
+ MAINTAINER Eric Olsen <eric@ericolsen.net>
4
+
5
+ ENV REFRESHED_AT 2015-02-04
6
+
7
+ RUN yum update -y && yum install -y \
8
+ curl \
9
+ gcc \
10
+ git \
11
+ make \
12
+ rpm-build \
13
+ ruby \
14
+ ruby-devel \
15
+ tar
16
+
17
+ RUN echo "gem: --no-ri --no-rdoc" >/etc/gemrc
18
+ RUN gem install fpm -v 1.4.0
19
+ RUN gem install fpm-cookery -v 0.31.0
20
+ RUN yum -y install vim
21
+
22
+ VOLUME /data
23
+ WORKDIR /data
24
+
25
+ CMD ["fpm-cook", "install-build-deps", "--debug", "--tmp-root", "/tmp", "recipes/recipe.rb"]
26
+ CMD ["fpm-cook", "package", "--debug", "--tmp-root", "/tmp", "--pkg-dir", "pkg", "--no-deps", "recipes/recipe.rb"]
data/build/c7_build.sh ADDED
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ docker run -h c7-builder.docker -it --rm -v $PWD:/data c7-builder
@@ -0,0 +1,11 @@
1
+ {
2
+ "elasticsearch": {
3
+ "hosts":
4
+ [
5
+ {"host":"localhost","port":9200}
6
+ ],
7
+ "randomize_hosts":true,
8
+ "retry_on_failure":true,
9
+ "index": "packageiq"
10
+ }
11
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "indexer": {
3
+ "workers" : 10,
4
+ "threads" : 2
5
+ }
6
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "rabbitmq" : {
3
+ "host" : "localhost",
4
+ "port" : 5672,
5
+ "tls" : false,
6
+ "vhost": "/",
7
+ "user" : "guest",
8
+ "pass" : "guest",
9
+ "queue": "packageiq.packages"
10
+ }
11
+ }
@@ -0,0 +1,13 @@
1
+ [Unit]
2
+ Description=PackageIQ Indexer
3
+
4
+ [Service]
5
+ Type=simple
6
+ User=packageiq
7
+ Group=packageiq
8
+ ExecStart=/usr/local/bin/piq_indexer
9
+ StandardOutput=syslog
10
+ StandardError=syslog
11
+
12
+ [Install]
13
+ WantedBy=multi-user.target
@@ -0,0 +1,5 @@
1
+ class AmqProtocolGem < FPM::Cookery::RubyGemRecipe
2
+ name 'amq-protocol'
3
+ version '2.0.1'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class BunnyGem < FPM::Cookery::RubyGemRecipe
2
+ name 'bunny'
3
+ version '2.2.2'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class ElasticsearchApiGem < FPM::Cookery::RubyGemRecipe
2
+ name 'elasticsearch-api'
3
+ version '1.0.15'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class ElasticsearchModelGem < FPM::Cookery::RubyGemRecipe
2
+ name 'elasticsearch-model'
3
+ version '0.1.8'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class ElasticsearchPersistenceGem < FPM::Cookery::RubyGemRecipe
2
+ name 'elasticsearch-persistence'
3
+ version '0.1.8'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class ElasticsearchTransportGem < FPM::Cookery::RubyGemRecipe
2
+ name 'elasticsearch-transport'
3
+ version '1.0.15'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class ElasticsearchGem < FPM::Cookery::RubyGemRecipe
2
+ name 'elasticsearch'
3
+ version '1.0.15'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class FaradayGem < FPM::Cookery::RubyGemRecipe
2
+ name 'faraday'
3
+ version '0.9.2'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class JSONGem < FPM::Cookery::RubyGemRecipe
2
+ name 'json'
3
+ version '1.8.3'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class MultiJSONGem < FPM::Cookery::RubyGemRecipe
2
+ name 'multi_json'
3
+ version '1.11.2'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,6 @@
1
+ class MultiPartPostGem < FPM::Cookery::RubyGemRecipe
2
+ name 'multipart-post'
3
+ version '2.0.0'
4
+ revision 5
5
+ maintainer 'Eric Olsen <eric@ericolsen.net'
6
+ end
@@ -0,0 +1,5 @@
1
+ class PackageIQGem < FPM::Cookery::RubyGemRecipe
2
+ name 'packageiq'
3
+ version '0.1.1'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,13 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ if ! getent passwd packageiq > /dev/null; then
6
+ useradd -c "PackageIQ User" -d /home/packageiq -m -U -s "/sbin/nologin" packageiq
7
+ fi
8
+
9
+ chown -R root:root /etc/packageiq
10
+ chmod 0755 /etc/packageiq
11
+ chmod 0644 /etc/packageiq/*
12
+
13
+ systemctl daemon-reload
@@ -0,0 +1,54 @@
1
+ class PackageIQ < FPM::Cookery::Recipe
2
+ name 'packageiq'
3
+ version '0.1.2'
4
+
5
+ source '', :with => :noop
6
+
7
+ description 'PackageIQ'
8
+
9
+ maintainer 'Eric Olsen <eric@ericolsen.net>'
10
+
11
+ homepage 'https://github.com/eoly/packageiq'
12
+
13
+ depends ['rubygem-packageiq',
14
+ 'rubygem-bunny',
15
+ 'rubygem-json',
16
+ 'rubygem-elasticsearch',
17
+ 'rubygem-sneakers']
18
+
19
+ config_files ['/etc/packageiq/rabbitmq.json',
20
+ '/etc/packageiq/indexer.json',
21
+ '/etc/packageiq/elasticsearch.json']
22
+
23
+ chain_package true
24
+ chain_recipes ['bunny',
25
+ 'packageiq',
26
+ 'amqp-protocol',
27
+ 'faraday',
28
+ 'json',
29
+ 'multi_json',
30
+ 'multipart-post',
31
+ 'serverengine',
32
+ 'sigdump',
33
+ 'thor',
34
+ 'thread',
35
+ 'elasticsearch',
36
+ 'elasticsearch-api',
37
+ 'elasticsearch-model',
38
+ 'elasticsearch-persistence',
39
+ 'elasticsearch-transport',
40
+ 'sneakers']
41
+
42
+ post_install 'postinst'
43
+
44
+ def build
45
+ end
46
+
47
+ def install
48
+ etc('packageiq').mkdir
49
+ etc('packageiq').install workdir('../etc/packageiq/rabbitmq.json')
50
+ etc('packageiq').install workdir('../etc/packageiq/elasticsearch.json')
51
+ etc('packageiq').install workdir('../etc/packageiq/indexer.json')
52
+ lib('systemd/system').install workdir('../lib/systemd/system/piq_indexer.service')
53
+ end
54
+ end
@@ -0,0 +1,5 @@
1
+ class ServerengineGem < FPM::Cookery::RubyGemRecipe
2
+ name 'serverengine'
3
+ version '1.5.11'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class SigdumpGem < FPM::Cookery::RubyGemRecipe
2
+ name 'sigdump'
3
+ version '0.2.4'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class SneakersGem < FPM::Cookery::RubyGemRecipe
2
+ name 'sneakers'
3
+ version '2.3.5'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class ThorGem < FPM::Cookery::RubyGemRecipe
2
+ name 'thor'
3
+ version '0.19.1'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -0,0 +1,5 @@
1
+ class ThreadGem < FPM::Cookery::RubyGemRecipe
2
+ name 'thread'
3
+ version '0.1.7'
4
+ maintainer 'Eric Olsen <eric@ericolsen.net'
5
+ end
@@ -5,25 +5,25 @@ module Packageiq
5
5
  module Provider
6
6
  # rhel based system package provider
7
7
  class RHEL
8
- # mapping for yum info field name to symbol
8
+ # mapping of yum info query tags to symbol
9
9
  RPM_INFO_KEY = {
10
- 'Name' => :name,
11
- 'Epoch' => :epoch,
12
- 'Version' => :version,
13
- 'Release' => :release,
14
- 'Architecture' => :arch,
15
- 'Install Date' => :install_date,
16
- 'Group' => :group,
17
- 'Size' => :size,
18
- 'License' => :license,
19
- 'Signature' => :signature,
20
- 'Source RPM' => :source_rpm,
21
- 'Build Date' => :build_date,
22
- 'Build Host' => :build_host,
23
- 'Packager' => :packager,
24
- 'Vendor' => :vendor,
25
- 'URL' => :url,
26
- 'Summary' => :summary
10
+ :name => '%{NAME}',
11
+ :epoch => '%{EPOCH}',
12
+ :version => '%{VERSION}',
13
+ :release => '%{RELEASE}',
14
+ :arch => '%{ARCH}',
15
+ :install_date => '%{INSTALLTIME:date}',
16
+ :group => '%{GROUP}',
17
+ :size => '%{SIZE}',
18
+ :license => '%{LICENSE}',
19
+ :signature => '%|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:{%|SIGGPG?{%{SIGGPG:pgpsig}}:{%|SIGPGP?{%{SIGPGP:pgpsig}}:{(none)}|}|}|}|',
20
+ :source_rpm => '%{SOURCERPM}',
21
+ :build_date => '%{BUILDTIME:date}',
22
+ :build_host => '%{BUILDHOST}',
23
+ :packager => '%{PACKAGER}',
24
+ :vendor => '%{VENDOR}',
25
+ :url => '%{URL}',
26
+ :summary => '%{SUMMARY}'
27
27
  }
28
28
 
29
29
  attr_reader :command_handler, :hostname, :timestamp, :os_release
@@ -49,7 +49,11 @@ module Packageiq
49
49
 
50
50
  # returns hash of rpm info
51
51
  def info(package)
52
- info = run("rpm -qi #{package}")
52
+ queryformat = ''
53
+ RPM_INFO_KEY.each do |symbol, query|
54
+ queryformat += "#{symbol}: #{query}\\n"
55
+ end
56
+ info = run("rpm -q --queryformat \"#{queryformat}\" #{package}")
53
57
  parse_info(info)
54
58
  end
55
59
 
@@ -135,8 +139,8 @@ module Packageiq
135
139
  lines = info.split("\n")
136
140
  info_hash = { package: {} }
137
141
  lines.each do |line|
138
- RPM_INFO_KEY.each do |field, symbol|
139
- parse_regex = Regexp.new("^(#{field})+\s*:{1}\s+(.*)$")
142
+ RPM_INFO_KEY.each do |symbol, query|
143
+ parse_regex = Regexp.new("^(#{symbol})+\s*:{1}\s{1}(.*)$")
140
144
  parts = parse_regex.match(line)
141
145
  info_hash[:package][symbol] = parts[2] if parts
142
146
  end
@@ -1,3 +1,3 @@
1
1
  module Packageiq
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/packageiq.gemspec CHANGED
@@ -33,4 +33,7 @@ Gem::Specification.new do |spec|
33
33
 
34
34
  spec.add_development_dependency 'bundler', '~> 1.10'
35
35
  spec.add_development_dependency 'rake', '~> 10.0'
36
+ spec.add_development_dependency 'pleaserun', '~> 0.0.16'
37
+ spec.add_development_dependency 'fpm', '~> 1.4.0'
38
+ spec.add_development_dependency 'fpm-cookery', '~> 0.31.0'
36
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packageiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Olsen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-08 00:00:00.000000000 Z
11
+ date: 2016-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny
@@ -94,6 +94,48 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '10.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pleaserun
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.0.16
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.0.16
111
+ - !ruby/object:Gem::Dependency
112
+ name: fpm
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 1.4.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.4.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: fpm-cookery
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 0.31.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.31.0
97
139
  description: Package Intelligence Gathering System
98
140
  email:
99
141
  - eric@ericolsen.net
@@ -110,6 +152,31 @@ files:
110
152
  - Rakefile
111
153
  - bin/console
112
154
  - bin/setup
155
+ - build/Dockerfile
156
+ - build/c7_build.sh
157
+ - build/etc/packageiq/elasticsearch.json
158
+ - build/etc/packageiq/indexer.json
159
+ - build/etc/packageiq/rabbitmq.json
160
+ - build/lib/systemd/system/piq_indexer.service
161
+ - build/recipes/amqp-protocol.rb
162
+ - build/recipes/bunny.rb
163
+ - build/recipes/elasticsearch-api.rb
164
+ - build/recipes/elasticsearch-model.rb
165
+ - build/recipes/elasticsearch-persistence.rb
166
+ - build/recipes/elasticsearch-transport.rb
167
+ - build/recipes/elasticsearch.rb
168
+ - build/recipes/faraday.rb
169
+ - build/recipes/json.rb
170
+ - build/recipes/multi_json.rb
171
+ - build/recipes/multipart-post.rb
172
+ - build/recipes/packageiq.rb
173
+ - build/recipes/postinst
174
+ - build/recipes/recipe.rb
175
+ - build/recipes/serverengine.rb
176
+ - build/recipes/sigdump.rb
177
+ - build/recipes/sneakers.rb
178
+ - build/recipes/thor.rb
179
+ - build/recipes/thread.rb
113
180
  - etc/packageiq/elasticsearch.json
114
181
  - etc/packageiq/indexer.json
115
182
  - etc/packageiq/rabbitmq.json
@@ -150,4 +217,3 @@ signing_key:
150
217
  specification_version: 4
151
218
  summary: Package Intelligence Gathering System
152
219
  test_files: []
153
- has_rdoc: