OSDN Git Service

refactoring.
authorwhitestar <whitestar@users.osdn.me>
Sun, 26 Nov 2017 08:09:34 +0000 (17:09 +0900)
committerwhitestar <whitestar@users.osdn.me>
Sun, 26 Nov 2017 08:09:34 +0000 (17:09 +0900)
cookbooks/openldap-grid/.foodcritic
cookbooks/openldap-grid/.rubocop.yml
cookbooks/openldap-grid/CHANGELOG.md
cookbooks/openldap-grid/Rakefile
cookbooks/openldap-grid/concourse.yml [new file with mode: 0644]
cookbooks/openldap-grid/fly-vars.yml [new file with mode: 0644]
cookbooks/openldap-grid/metadata.rb
cookbooks/openldap-grid/recipes/client.rb
cookbooks/openldap-grid/recipes/nss-ldapd.rb
cookbooks/openldap-grid/version [new file with mode: 0644]

index 9ff6dc5..251e23a 100644 (file)
@@ -10,6 +10,8 @@ Lint/UnusedBlockArgument:
   Enabled: false
 Metrics/AbcSize:
   Enabled: false
+Metrics/BlockLength:
+  Max: 77
 Style/BlockComments:
   Enabled: false
 Style/BlockDelimiters:
@@ -20,20 +22,36 @@ Style/FileName:
   Enabled: false
 Style/LeadingCommentSpace:
   Enabled: false
+Style/PerlBackrefs:
+  Enabled: false
 Style/RescueModifier:
   Enabled: false
+Style/SpaceAroundOperators:
+  Enabled: false
 Style/SpaceBeforeFirstArg:
   Enabled: false
+Style/SpaceInsideBlockBraces:
+  Enabled: false
+Style/SpaceInsidePercentLiteralDelimiters:
+  Enabled: false
 Style/TrailingCommaInLiteral:
-  EnforcedStyleForMultiline: comma
+  EnforcedStyleForMultiline: consistent_comma
 Style/WordArray:
   Enabled: false
-  
+
+#Lint/ShadowingOuterLocalVariable:
+#  Enabled: false
+#Metrics/MethodLength:
+#  Max: 10
+#Metrics/ModuleLength:
+#  Max: 100
+#Metrics/CyclomaticComplexity:
+#  Max: 6
+#Metrics/PerceivedComplexity:
+#  Max: 7
 #Style/AccessorMethodName:
 #  Enabled: false
-#Style/MethodLength:
-#  Max: 30
-#Style/ModuleLength:
-#  Max: 150
-Style/PerlBackrefs:
-  Enabled: false
+#Style/MultilineOperationIndentation:
+#  Enabled: false
+#Style/PerlBackrefs:
+#  Enabled: false
index c753b76..9502555 100644 (file)
@@ -1,5 +1,9 @@
 # CHANGELOG for openldap-grid
 
+0.2.5
+-----
+- refactoring.
+
 0.2.4
 -----
 - bug fix: key access group modification.
index 513cecc..64191a5 100644 (file)
@@ -1,10 +1,15 @@
 require 'rspec/core/rake_task'
 require 'rubocop/rake_task'
 require 'foodcritic'
+require 'stove/rake_task'
 
 namespace :style do
   desc 'Run Ruby style checks'
-  RuboCop::RakeTask.new(:ruby)
+  RuboCop::RakeTask.new(:ruby) do |t|
+    t.options = [
+      '--auto-gen-config',  # creates .rubocop_todo.yml
+    ]
+  end
 
   desc 'Run Chef style checks'
   FoodCritic::Rake::LintTask.new(:chef) do |t|
@@ -20,4 +25,17 @@ task style: ['style:chef', 'style:ruby']
 desc 'Run ChefSpec examples'
 RSpec::Core::RakeTask.new(:spec)
 
+desc 'Publish cookbook'
+Stove::RakeTask.new(:publish) do |t|
+  t.stove_opts = [
+    # `--username` and `--key` are set in ~/.stove typically.
+    #'--username', 'somebody',
+    #'--key', '~/chef/chef.io.example.com/somebody.pem',
+    #'--endpoint', 'https://supermarket.io.example.com/api/v1',  # default: supermarket.chef.io
+    #'--no-ssl-verify',
+    '--no-git',
+    '--log-level', 'info',
+  ]
+end
+
 task default: ['style', 'spec']
diff --git a/cookbooks/openldap-grid/concourse.yml b/cookbooks/openldap-grid/concourse.yml
new file mode 100644 (file)
index 0000000..cb21854
--- /dev/null
@@ -0,0 +1,100 @@
+---
+# $ fly -t target sp -p openldap-grid-cookbook -c concourse.yml -l fly-vars.yml -l ~/sec/credentials-prod.yml
+resources:
+- name: src-git
+  type: git
+  source:
+    uri: ((git-id-osdn))@git.osdn.net:/gitroot/metasearch/grid-chef-repo.git
+    branch: master
+    paths:
+    - cookbooks/((cookbook-name))
+    private_key: ((git-private-key))
+    git_user: ((git-user-osdn))
+  #check_every: 1h  # default: 1m
+- name: chefdk-cache
+  type: docker-image
+  source:
+    repository: chef/chefdk
+    tag: ((chefdk-version))
+    # ((param)) style: fly >= 3.2.0
+    registry_mirror: https://((registry-mirror-domain))  # e.g. https://registry.docker.example.com:5000
+    ca_certs:
+    - domain: ((registry-mirror-domain))  # e.g. registry.docker.example.com:5000
+      cert: ((docker-reg-ca-cert))
+  check_every: 12h  # default: 1m
+
+jobs:
+- name: test-cookbook
+  plan:
+  - aggregate:
+    - get: src-git
+      params:
+        depth: 5
+      trigger: true
+    - get: chefdk-cache
+  - task: ci-build
+    image: chefdk-cache
+    params:
+      http_proxy: ((http-proxy))  # e.g. http://proxy.example.com:3128
+      #HTTP_PROXY: ((http-proxy))
+    config:
+      platform: linux
+      #image_resource:
+      #  type: docker-image
+      #  source:
+      #    repository: chef/chefdk
+      #    tag: ((chefdk-version))
+          # NG, setting disable
+          #registry_mirror: https://((registry-mirror-domain))
+          #ca_certs:
+          #- domain: ((registry-mirror-domain))
+          #  cert: ((docker-reg-ca-cert))
+      inputs:
+      - name: src-git
+      run:
+        #dir: ./src-git/cookbooks/((cookbook-name))
+        #path: rake
+        path: /bin/bash
+        args:
+        - -c
+        - |
+          cd ./src-git/cookbooks/((cookbook-name))
+          bundle install
+          rake
+- name: publish-cookbook
+  plan:
+  - aggregate:
+    - get: src-git
+      params:
+        depth: 5
+      trigger: false
+      passed: [test-cookbook]
+    - get: chefdk-cache
+      passed: [test-cookbook]
+  - task: publish
+    image: chefdk-cache
+    params:
+      http_proxy: ((http-proxy))
+      chef_username: ((chef-username))
+      chef_client_key: ((chef-client-key))
+    config:
+      platform: linux
+      inputs:
+      - name: src-git
+      run:
+        path: /bin/bash
+        args:
+        - -c
+        - |
+          echo '{"username":"((chef-username))","key":"/root/chef-client-key.pem"}' > /root/.stove
+          echo "$chef_client_key"  > /root/chef-client-key.pem
+          cd ./src-git/cookbooks/((cookbook-name))
+          bundle install
+          rake publish
+  - put: src-git
+    params:
+      repository: src-git
+      tag_prefix: ((cookbook-name))-
+      tag: src-git/cookbooks/((cookbook-name))/version
+      only_tag: true
+      annotate: ../src-git/cookbooks/((cookbook-name))/version
diff --git a/cookbooks/openldap-grid/fly-vars.yml b/cookbooks/openldap-grid/fly-vars.yml
new file mode 100644 (file)
index 0000000..7e5f10a
--- /dev/null
@@ -0,0 +1,3 @@
+---
+cookbook-name: 00cookbook
+chefdk-version: 1.4.3
index 27f2993..fd5c81c 100644 (file)
@@ -5,10 +5,11 @@ maintainer_email ''
 license          'Apache 2.0'
 description      'Installs/Configures openldap'
 long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
-version          '0.2.4'
+version          IO.read(File.join(File.dirname(__FILE__), 'version')).chomp
 source_url       'http://scm.osdn.jp/gitroot/metasearch/grid-chef-repo.git'
 issues_url       'https://osdn.jp/projects/metasearch/ticket'
 
+chef_version     '>= 12'
 %w( debian ubuntu centos redhat ).each do |os|
   supports os
 end
index 9264b88..e42483c 100644 (file)
@@ -49,9 +49,11 @@ ldap_conf_keys = [
   'TLS_CRLFILE',
 ]
 
-if node['openldap']['with_ssl_cert_cookbook']
+tls_cacert = node['openldap']['client']['TLS_CACERT']
+if node['openldap']['with_ssl_cert_cookbook'] \
+  && (tls_cacert.nil? || tls_cacert.empty?)
   ::Chef::Recipe.send(:include, SSLCert::Helper)
-  node.override['openldap']['client']['TLS_CACERT'] \
+  node.force_override['openldap']['client']['TLS_CACERT'] \
     = ca_cert_path(node['openldap']['ssl_cert']['ca_name'])
 end
 
index 00bf1e0..0d69315 100644 (file)
@@ -55,9 +55,11 @@ nslcd_conf_keys = [
   'pam_authz_search',
 ]
 
-if node['openldap']['with_ssl_cert_cookbook']
+tls_cacertfile = node['openldap']['nss-ldapd']['tls_cacertfile']
+if node['openldap']['with_ssl_cert_cookbook'] \
+  && (tls_cacertfile.nil? || tls_cacertfile.empty?)
   ::Chef::Recipe.send(:include, SSLCert::Helper)
-  node.override['openldap']['nss-ldapd']['tls_cacertfile'] \
+  node.force_override['openldap']['nss-ldapd']['tls_cacertfile'] \
     = ca_cert_path(node['openldap']['ssl_cert']['ca_name'])
 end
 
@@ -127,11 +129,10 @@ ruby_block 'configuring_nameservices' do
         is_modified = false
         buf = ''
         file.each {|line|
-          if line =~ /^(\w+):\s+(.*)$/
-            if nameservices.include?($1) && !$2.include?('ldap')
-              line.chomp! << " ldap\n"
-              is_modified = true
-            end
+          if line =~ /^(\w+):\s+(.*)$/ \
+            && nameservices.include?($1) && !$2.include?('ldap')
+            line.chomp! << " ldap\n"
+            is_modified = true
           end
           buf << line
         }
diff --git a/cookbooks/openldap-grid/version b/cookbooks/openldap-grid/version
new file mode 100644 (file)
index 0000000..3a4036f
--- /dev/null
@@ -0,0 +1 @@
+0.2.5