From e0d56fba319c9fc0b655486e2e961b83be2b0495 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 27 Jul 2016 16:16:26 +1000 Subject: [PATCH 001/133] Added aws spec libraries and initializations. --- Gemfile | 3 ++- Gemfile.lock | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 58fec8ab0..cede2ff98 100644 --- a/Gemfile +++ b/Gemfile @@ -44,6 +44,7 @@ gem "font-awesome-rails" gem 'aws-sdk-v1' gem 'aws-sdk', '~> 2' +gem 'awspec' gem 'ridley', '~> 4.2.0' gem "net-ssh" gem "net-scp" @@ -102,7 +103,7 @@ group :development, :test do end # for Login -gem 'devise', '~> 3.5.3' +gem 'devise', '~> 3.5.3' gem 'pundit' # pagination diff --git a/Gemfile.lock b/Gemfile.lock index e4116fbe4..d507b24dc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -55,6 +55,18 @@ GEM aws-sdk-v1 (1.66.0) json (~> 1.4) nokogiri (>= 1.4.4) + aws_config (0.0.4) + awsecrets (1.2.0) + aws-sdk (~> 2.1) + aws_config + awspec (0.37.7) + activesupport + aws-sdk (~> 2.2) + awsecrets (~> 1) + rspec (~> 3.0) + rspec-its + term-ansicolor + thor bcrypt (3.1.11) better_errors (2.1.1) coderay (>= 1.0.0) @@ -530,6 +542,7 @@ DEPENDENCIES awesome_print aws-sdk (~> 2) aws-sdk-v1 + awspec better_errors binding_of_caller bootstrap-table-rails @@ -601,4 +614,4 @@ DEPENDENCIES yard BUNDLED WITH - 1.11.2 + 1.12.5 From 6d1432e42f67b1f5c32642ed9e1488739f9fca26 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 27 Jul 2016 15:19:36 +0900 Subject: [PATCH 002/133] files for aws spec --- config/aws.yml | 3 +++ spec/.gitignore | 1 + spec/ec2_spec.rb | 1 + 3 files changed, 5 insertions(+) create mode 100644 config/aws.yml create mode 100644 spec/.gitignore create mode 100644 spec/ec2_spec.rb diff --git a/config/aws.yml b/config/aws.yml new file mode 100644 index 000000000..4a39fc6a1 --- /dev/null +++ b/config/aws.yml @@ -0,0 +1,3 @@ +access_key_id: "AKIAIC2HBHO73IUQAIAA" +secret_access_key: "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" +region: "ap-northeast-1" diff --git a/spec/.gitignore b/spec/.gitignore new file mode 100644 index 000000000..769c24400 --- /dev/null +++ b/spec/.gitignore @@ -0,0 +1 @@ +secrets.yml diff --git a/spec/ec2_spec.rb b/spec/ec2_spec.rb new file mode 100644 index 000000000..2f8a8758a --- /dev/null +++ b/spec/ec2_spec.rb @@ -0,0 +1 @@ +bundler: failed to load command: awspec (/vagrant/skyhopper/vendor/bundle/ruby/2.2.0/bin/awspec) From 98c20e87d617236e325480c09183d717497a75c1 Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 7 Sep 2016 16:50:39 +0900 Subject: [PATCH 003/133] Move db actions into DatabasesController --- app/controllers/app_settings_controller.rb | 29 +------------ app/controllers/databases_controller.rb | 42 +++++++++++++++++++ .../db.html.erb => databases/index.html.erb} | 8 ++-- app/views/layouts/_navbar_top.html.erb | 2 +- config/routes.rb | 10 +++-- 5 files changed, 55 insertions(+), 36 deletions(-) create mode 100644 app/controllers/databases_controller.rb rename app/views/{app_settings/db.html.erb => databases/index.html.erb} (69%) diff --git a/app/controllers/app_settings_controller.rb b/app/controllers/app_settings_controller.rb index e605de5da..b1504a292 100644 --- a/app/controllers/app_settings_controller.rb +++ b/app/controllers/app_settings_controller.rb @@ -9,7 +9,7 @@ class AppSettingsController < ApplicationController before_action :authenticate_user!, except: [:show, :create] - before_action except: [:edit_zabbix, :update_zabbix, :chef_server, :chef_keys, :db, :export_db] do + before_action except: [:edit_zabbix, :update_zabbix, :chef_server, :chef_keys] do if AppSetting.set? redirect_to root_path end @@ -130,13 +130,6 @@ def chef_keys @zipfile.close end - # GET /app_settings/export_db - def export_db - prepare_db_zip - send_file(@zipfile.path, filename: "SkyHopper-db-#{Rails.env}.zip") - @zipfile.close - end - private # statusに対応するメッセージをJSONとして返す @@ -173,24 +166,4 @@ def prepare_chef_key_zip zf = ZipFileGenerator.new(File.expand_path('~/.chef'), @zipfile.path) zf.write end - - def prepare_db_zip - dbname = ActiveRecord::Base.configurations[Rails.env]['database'] - filename = "#{dbname}.sql" - path = Rails.root.join("tmp/#{filename}") - - system('rake db:data:dump') - - @zipfile = Tempfile.open("skyhopper") - ::Zip::File.open(@zipfile.path, ::Zip::File::CREATE) do |zip| - zip.add(filename, path) - - SkyHopper::Application.secrets.each do |key, value| - next if value.nil? - zip.get_output_stream(key) { |io| io.write(value) } - end - end - - FileUtils.rm(path) - end end diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb new file mode 100644 index 000000000..8517a9a7b --- /dev/null +++ b/app/controllers/databases_controller.rb @@ -0,0 +1,42 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +class DatabasesController < ApplicationController + before_action do + authenticate_user! if AppSetting.set? + end + + # POST /databases/export + def export + prepare_db_zip + send_file(@zipfile.path, filename: "SkyHopper-db-#{Rails.env}.zip") + @zipfile.close + end + + + private + def prepare_db_zip + dbname = ActiveRecord::Base.configurations[Rails.env]['database'] + filename = "#{dbname}.sql" + path = Rails.root.join("tmp/#{filename}") + + system('rake db:data:dump') + + @zipfile = Tempfile.open("skyhopper") + ::Zip::File.open(@zipfile.path, ::Zip::File::CREATE) do |zip| + zip.add(filename, path) + + SkyHopper::Application.secrets.each do |key, value| + next if value.nil? + zip.get_output_stream(key) { |io| io.write(value) } + end + end + + FileUtils.rm(path) + end +end diff --git a/app/views/app_settings/db.html.erb b/app/views/databases/index.html.erb similarity index 69% rename from app/views/app_settings/db.html.erb rename to app/views/databases/index.html.erb index 1f8c8e0c9..8abf332b1 100644 --- a/app/views/app_settings/db.html.erb +++ b/app/views/databases/index.html.erb @@ -3,7 +3,7 @@
-
+
<%= t('common.btn.export') %>

<%= t('app_settings.msg.db_export')%>

@@ -12,11 +12,11 @@
  • <%= t('app_settings.msg.secret')%>
  • <%= t('app_settings.msg.db_key')%>
  • - - + +
    diff --git a/app/views/layouts/_navbar_top.html.erb b/app/views/layouts/_navbar_top.html.erb index 8eed55ec2..7c74b4aa2 100644 --- a/app/views/layouts/_navbar_top.html.erb +++ b/app/views/layouts/_navbar_top.html.erb @@ -22,7 +22,7 @@ <% if current_user.admin? && current_user.master? %>
  • <%= link_to 'Zabbix Servers', zabbix_servers_path %>
  • <%= link_to 'Chef Server', chef_server_app_settings_path %>
  • -
  • <%= link_to t('infrastructures.database'), db_app_settings_path %>
  • +
  • <%= link_to t('infrastructures.database'), databases_path %>
  • <% end %>
  • <%= link_to t('dishes.dishes'), dishes_path %>
  • diff --git a/config/routes.rb b/config/routes.rb index e69d88364..724aa3f90 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -163,9 +163,6 @@ get :chef_server get :chef_keys - get :db - get :export_db - get :edit_zabbix post :update_zabbix end @@ -178,4 +175,11 @@ post :status end end + + resources :databases, only: [:index] do + collection do + post :export + post :import + end + end end From efcda597dbf6ce02d3a993e098b4fa439aba440d Mon Sep 17 00:00:00 2001 From: candy Date: Fri, 9 Sep 2016 15:07:23 +0900 Subject: [PATCH 004/133] Append created_at string to filename of the exported zip file --- app/controllers/databases_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index 8517a9a7b..6c58021f5 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -14,7 +14,8 @@ class DatabasesController < ApplicationController # POST /databases/export def export prepare_db_zip - send_file(@zipfile.path, filename: "SkyHopper-db-#{Rails.env}.zip") + time = Time.now.strftime('%Y%m%d%H%M%S') + send_file(@zipfile.path, filename: "SkyHopper-db-#{Rails.env}-#{time}.zip") @zipfile.close end From 7c433e796d13485a06b09005cddd140fd1134065 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 11 Oct 2016 16:48:45 +1100 Subject: [PATCH 005/133] Changed Specfiles and added specific helper files for aws_spec --- Gemfile.lock | 35 ++++++++++---------- config/aws.yml | 3 -- spec/ec2_spec.rb | 85 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 101 insertions(+), 22 deletions(-) delete mode 100644 config/aws.yml diff --git a/Gemfile.lock b/Gemfile.lock index ee7aae87d..939d8adf5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -30,7 +30,7 @@ GEM activemodel (= 4.2.7.1) activesupport (= 4.2.7.1) arel (~> 6.0) - activerecord-import (0.15.0) + activerecord-import (0.16.0) activerecord (>= 3.2) activesupport (4.2.7.1) i18n (~> 0.7) @@ -46,12 +46,12 @@ GEM activesupport (>= 3.0.0) rspec awesome_print (1.7.0) - aws-sdk (2.6.5) - aws-sdk-resources (= 2.6.5) - aws-sdk-core (2.6.5) + aws-sdk (2.6.6) + aws-sdk-resources (= 2.6.6) + aws-sdk-core (2.6.6) jmespath (~> 1.0) - aws-sdk-resources (2.6.5) - aws-sdk-core (= 2.6.5) + aws-sdk-resources (2.6.6) + aws-sdk-core (= 2.6.6) aws-sdk-v1 (1.66.0) json (~> 1.4) nokogiri (>= 1.4.4) @@ -261,7 +261,8 @@ GEM named_let (0.2.0) rspec-core nenv (0.3.0) - net-http-persistent (2.9.4) + net-http-persistent (3.0.0) + connection_pool (~> 2.2) net-scp (1.2.1) net-ssh (>= 2.6.5) net-sftp (2.1.2) @@ -274,9 +275,8 @@ GEM net-ssh-gateway (>= 1.2.0) net-telnet (0.1.1) nio4r (1.2.1) - nokogiri (1.6.8) + nokogiri (1.6.8.1) mini_portile2 (~> 2.1.0) - pkg-config (~> 1.1.7) nori (2.6.0) notiffany (0.1.1) nenv (~> 0.1) @@ -296,7 +296,6 @@ GEM orm_adapter (0.5.0) parser (2.3.1.4) ast (~> 2.2) - pkg-config (1.1.7) plist (3.2.0) powerpack (0.1.1) proxifier (1.0.3) @@ -448,18 +447,18 @@ GEM sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - sdoc (0.4.1) + sdoc (0.4.2) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) semverse (1.2.1) - serverspec (2.36.1) + serverspec (2.37.0) multi_json rspec (~> 3.0) rspec-its specinfra (~> 2.53) - sfl (2.2) + sfl (2.3) shellany (0.0.1) - sidekiq (4.2.1) + sidekiq (4.2.2) concurrent-ruby (~> 1.0) connection_pool (~> 2.2, >= 2.2.0) rack-protection (~> 1.5) @@ -479,7 +478,7 @@ GEM tilt (>= 1.3, < 3) sky_zabbix (2.2.0.1.2) slop (3.6.0) - specinfra (2.63.1) + specinfra (2.63.3) net-scp net-ssh (>= 2.7, < 4.0) net-telnet @@ -498,7 +497,7 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - sqlite3 (1.3.11) + sqlite3 (1.3.12) syslog-logger (1.6.8) systemu (2.6.5) tapp (1.5.0) @@ -532,7 +531,7 @@ GEM hashie (>= 2.0.2, < 4.0.0) warden (1.2.6) rack (>= 1.0) - winrm (2.0.3) + winrm (2.1.0) builder (>= 2.1.2) erubis (~> 2.7) gssapi (~> 1.2) @@ -634,4 +633,4 @@ DEPENDENCIES yard BUNDLED WITH - 1.13.1 + 1.13.3 diff --git a/config/aws.yml b/config/aws.yml deleted file mode 100644 index 4a39fc6a1..000000000 --- a/config/aws.yml +++ /dev/null @@ -1,3 +0,0 @@ -access_key_id: "AKIAIC2HBHO73IUQAIAA" -secret_access_key: "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" -region: "ap-northeast-1" diff --git a/spec/ec2_spec.rb b/spec/ec2_spec.rb index 2f8a8758a..92ff1d1f2 100644 --- a/spec/ec2_spec.rb +++ b/spec/ec2_spec.rb @@ -1 +1,84 @@ -bundler: failed to load command: awspec (/vagrant/skyhopper/vendor/bundle/ruby/2.2.0/bin/awspec) +require 'aws_spec_helper' + +describe ec2('Zabbix Server 3.0.4-1') do + it { should exist } + it { should be_running } + its(:instance_id) { should eq 'i-c8e61146' } + its(:image_id) { should eq 'ami-1a15c77b' } + its(:private_dns_name) { should eq 'ip-172-31-9-112.ap-northeast-1.compute.internal' } + its(:public_dns_name) { should eq 'ec2-54-238-244-215.ap-northeast-1.compute.amazonaws.com' } + its(:instance_type) { should eq 't2.small' } + its(:private_ip_address) { should eq '172.31.9.112' } + its(:public_ip_address) { should eq '54.238.244.215' } + it { should have_security_group('SkyHopperZabbixServer-617281f7f19b739dc7ca39203c8ec07d-SecurityGroup-WMUFHWHJ2UP6') } + it { should belong_to_vpc('vpc-6e5cf50b') } + it { should belong_to_subnet('subnet-ba3be4e3') } + it { should have_ebs('vol-7c0e9bc7') } +end + +describe ec2('Chef Server') do + it { should exist } + it { should be_running } + its(:instance_id) { should eq 'i-e6876178' } + its(:image_id) { should eq 'ami-f80e0596' } + its(:private_dns_name) { should eq 'ip-172-31-24-152.ap-northeast-1.compute.internal' } + its(:public_dns_name) { should eq 'ec2-52-198-113-237.ap-northeast-1.compute.amazonaws.com' } + its(:instance_type) { should eq 't2.small' } + its(:private_ip_address) { should eq '172.31.24.152' } + its(:public_ip_address) { should eq '52.198.113.237' } + it { should have_security_group('SkyHopperChefServer-5e0900dab30d221b906e85cc5ba7048c-SecurityGroup-I2J3K6E3SSAY') } + it { should belong_to_vpc('vpc-6e5cf50b') } + it { should belong_to_subnet('subnet-9f8307e8') } + it { should have_eip('52.198.113.237') } + it { should have_ebs('vol-467787b7') } +end + +describe ec2('Zabbix Server') do + it { should exist } + it { should be_running } + its(:instance_id) { should eq 'i-e7876179' } + its(:image_id) { should eq 'ami-f80e0596' } + its(:private_dns_name) { should eq 'ip-172-31-28-69.ap-northeast-1.compute.internal' } + its(:public_dns_name) { should eq 'ec2-52-198-216-189.ap-northeast-1.compute.amazonaws.com' } + its(:instance_type) { should eq 't2.micro' } + its(:private_ip_address) { should eq '172.31.28.69' } + its(:public_ip_address) { should eq '52.198.216.189' } + it { should have_security_group('SkyHopperZabbixServer-fae3fae432255fc8dcdd4fdf5d87904c-SecurityGroup-DDSEWW5QVS6G') } + it { should belong_to_vpc('vpc-6e5cf50b') } + it { should belong_to_subnet('subnet-9f8307e8') } + it { should have_eip('52.198.216.189') } + it { should have_ebs('vol-477787b6') } +end + +describe ec2('EC2 Instance') do + it { should exist } + it { should be_running } + its(:instance_id) { should eq 'i-758563eb' } + its(:image_id) { should eq 'ami-f80e0596' } + its(:private_dns_name) { should eq 'ip-172-31-16-170.ap-northeast-1.compute.internal' } + its(:public_dns_name) { should eq 'ec2-52-198-221-231.ap-northeast-1.compute.amazonaws.com' } + its(:instance_type) { should eq 't2.micro' } + its(:private_ip_address) { should eq '172.31.16.170' } + its(:public_ip_address) { should eq '52.198.221.231' } + it { should have_security_group('default') } + it { should belong_to_vpc('vpc-6e5cf50b') } + it { should belong_to_subnet('subnet-9f8307e8') } + it { should have_eip('52.198.221.231') } + it { should have_ebs('vol-9d7b8b6c') } +end + +describe ec2('SKyhopper MArketplace AMI') do + it { should exist } + it { should be_running } + its(:instance_id) { should eq 'i-7ccf38f2' } + its(:image_id) { should eq 'ami-bd2df0dc' } + its(:private_dns_name) { should eq 'ip-172-31-12-175.ap-northeast-1.compute.internal' } + its(:public_dns_name) { should eq 'ec2-54-238-201-55.ap-northeast-1.compute.amazonaws.com' } + its(:instance_type) { should eq 't2.small' } + its(:private_ip_address) { should eq '172.31.12.175' } + its(:public_ip_address) { should eq '54.238.201.55' } + it { should have_security_group('default') } + it { should belong_to_vpc('vpc-6e5cf50b') } + it { should belong_to_subnet('subnet-ba3be4e3') } + it { should have_ebs('vol-61d94dda') } +end From c75d3d11e0573cb67f46492476038a08f8e29149 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 11 Oct 2016 14:49:31 +0900 Subject: [PATCH 006/133] added awspec config and helper files --- lib/tasks/awspec.rake | 3 +++ spec/aws_spec_helper.rb | 2 ++ 2 files changed, 5 insertions(+) create mode 100644 lib/tasks/awspec.rake create mode 100644 spec/aws_spec_helper.rb diff --git a/lib/tasks/awspec.rake b/lib/tasks/awspec.rake new file mode 100644 index 000000000..941f88c56 --- /dev/null +++ b/lib/tasks/awspec.rake @@ -0,0 +1,3 @@ +require 'rspec/core/rake_task' +RSpec::Core::RakeTask.new('spec') +task :default => :spec diff --git a/spec/aws_spec_helper.rb b/spec/aws_spec_helper.rb new file mode 100644 index 000000000..6ccd1a57b --- /dev/null +++ b/spec/aws_spec_helper.rb @@ -0,0 +1,2 @@ +require 'awspec' +Awsecrets.load(secrets_path: File.expand_path('./secrets.yml', File.dirname(__FILE__))) From 378b14d66273250cbcc98f2035a73ff5e868d2b4 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 11 Oct 2016 15:53:16 +0900 Subject: [PATCH 007/133] remove sample ec2_spec.rb file --- spec/ec2_spec.rb | 84 ------------------------------------------------ 1 file changed, 84 deletions(-) delete mode 100644 spec/ec2_spec.rb diff --git a/spec/ec2_spec.rb b/spec/ec2_spec.rb deleted file mode 100644 index 92ff1d1f2..000000000 --- a/spec/ec2_spec.rb +++ /dev/null @@ -1,84 +0,0 @@ -require 'aws_spec_helper' - -describe ec2('Zabbix Server 3.0.4-1') do - it { should exist } - it { should be_running } - its(:instance_id) { should eq 'i-c8e61146' } - its(:image_id) { should eq 'ami-1a15c77b' } - its(:private_dns_name) { should eq 'ip-172-31-9-112.ap-northeast-1.compute.internal' } - its(:public_dns_name) { should eq 'ec2-54-238-244-215.ap-northeast-1.compute.amazonaws.com' } - its(:instance_type) { should eq 't2.small' } - its(:private_ip_address) { should eq '172.31.9.112' } - its(:public_ip_address) { should eq '54.238.244.215' } - it { should have_security_group('SkyHopperZabbixServer-617281f7f19b739dc7ca39203c8ec07d-SecurityGroup-WMUFHWHJ2UP6') } - it { should belong_to_vpc('vpc-6e5cf50b') } - it { should belong_to_subnet('subnet-ba3be4e3') } - it { should have_ebs('vol-7c0e9bc7') } -end - -describe ec2('Chef Server') do - it { should exist } - it { should be_running } - its(:instance_id) { should eq 'i-e6876178' } - its(:image_id) { should eq 'ami-f80e0596' } - its(:private_dns_name) { should eq 'ip-172-31-24-152.ap-northeast-1.compute.internal' } - its(:public_dns_name) { should eq 'ec2-52-198-113-237.ap-northeast-1.compute.amazonaws.com' } - its(:instance_type) { should eq 't2.small' } - its(:private_ip_address) { should eq '172.31.24.152' } - its(:public_ip_address) { should eq '52.198.113.237' } - it { should have_security_group('SkyHopperChefServer-5e0900dab30d221b906e85cc5ba7048c-SecurityGroup-I2J3K6E3SSAY') } - it { should belong_to_vpc('vpc-6e5cf50b') } - it { should belong_to_subnet('subnet-9f8307e8') } - it { should have_eip('52.198.113.237') } - it { should have_ebs('vol-467787b7') } -end - -describe ec2('Zabbix Server') do - it { should exist } - it { should be_running } - its(:instance_id) { should eq 'i-e7876179' } - its(:image_id) { should eq 'ami-f80e0596' } - its(:private_dns_name) { should eq 'ip-172-31-28-69.ap-northeast-1.compute.internal' } - its(:public_dns_name) { should eq 'ec2-52-198-216-189.ap-northeast-1.compute.amazonaws.com' } - its(:instance_type) { should eq 't2.micro' } - its(:private_ip_address) { should eq '172.31.28.69' } - its(:public_ip_address) { should eq '52.198.216.189' } - it { should have_security_group('SkyHopperZabbixServer-fae3fae432255fc8dcdd4fdf5d87904c-SecurityGroup-DDSEWW5QVS6G') } - it { should belong_to_vpc('vpc-6e5cf50b') } - it { should belong_to_subnet('subnet-9f8307e8') } - it { should have_eip('52.198.216.189') } - it { should have_ebs('vol-477787b6') } -end - -describe ec2('EC2 Instance') do - it { should exist } - it { should be_running } - its(:instance_id) { should eq 'i-758563eb' } - its(:image_id) { should eq 'ami-f80e0596' } - its(:private_dns_name) { should eq 'ip-172-31-16-170.ap-northeast-1.compute.internal' } - its(:public_dns_name) { should eq 'ec2-52-198-221-231.ap-northeast-1.compute.amazonaws.com' } - its(:instance_type) { should eq 't2.micro' } - its(:private_ip_address) { should eq '172.31.16.170' } - its(:public_ip_address) { should eq '52.198.221.231' } - it { should have_security_group('default') } - it { should belong_to_vpc('vpc-6e5cf50b') } - it { should belong_to_subnet('subnet-9f8307e8') } - it { should have_eip('52.198.221.231') } - it { should have_ebs('vol-9d7b8b6c') } -end - -describe ec2('SKyhopper MArketplace AMI') do - it { should exist } - it { should be_running } - its(:instance_id) { should eq 'i-7ccf38f2' } - its(:image_id) { should eq 'ami-bd2df0dc' } - its(:private_dns_name) { should eq 'ip-172-31-12-175.ap-northeast-1.compute.internal' } - its(:public_dns_name) { should eq 'ec2-54-238-201-55.ap-northeast-1.compute.amazonaws.com' } - its(:instance_type) { should eq 't2.small' } - its(:private_ip_address) { should eq '172.31.12.175' } - its(:public_ip_address) { should eq '54.238.201.55' } - it { should have_security_group('default') } - it { should belong_to_vpc('vpc-6e5cf50b') } - it { should belong_to_subnet('subnet-ba3be4e3') } - it { should have_ebs('vol-61d94dda') } -end From d9fec562534a464c9cc679cdd2b4bba6737bbc6c Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Mon, 17 Oct 2016 17:18:25 +0900 Subject: [PATCH 008/133] Changed Gemfile to make awspec optional to avoid breaking other application tests --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 9f84ed9e7..2c9fed87b 100644 --- a/Gemfile +++ b/Gemfile @@ -48,7 +48,7 @@ gem "font-awesome-rails" gem 'aws-sdk-v1' gem 'aws-sdk', '~> 2' -gem 'awspec' +gem 'awspec', require: false gem 'ridley', '~> 4.2.0' gem "net-ssh" gem "net-scp" From 85a9b11feb302dba5a91ef15b010b8994075e55b Mon Sep 17 00:00:00 2001 From: candy Date: Mon, 17 Oct 2016 17:38:05 +0900 Subject: [PATCH 009/133] Refactor DatabasesController#export --- app/controllers/databases_controller.rb | 30 +++++------------- app/models/database_manager.rb | 42 +++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 23 deletions(-) create mode 100644 app/models/database_manager.rb diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index 6c58021f5..4a7659732 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -13,31 +13,15 @@ class DatabasesController < ApplicationController # POST /databases/export def export - prepare_db_zip time = Time.now.strftime('%Y%m%d%H%M%S') - send_file(@zipfile.path, filename: "SkyHopper-db-#{Rails.env}-#{time}.zip") - @zipfile.close + zipfile = DatabaseManager.export_as_zip + send_file(zipfile.path, filename: "SkyHopper-db-#{Rails.env}-#{time}.zip") + zipfile.close end - - private - def prepare_db_zip - dbname = ActiveRecord::Base.configurations[Rails.env]['database'] - filename = "#{dbname}.sql" - path = Rails.root.join("tmp/#{filename}") - - system('rake db:data:dump') - - @zipfile = Tempfile.open("skyhopper") - ::Zip::File.open(@zipfile.path, ::Zip::File::CREATE) do |zip| - zip.add(filename, path) - - SkyHopper::Application.secrets.each do |key, value| - next if value.nil? - zip.get_output_stream(key) { |io| io.write(value) } - end - end - - FileUtils.rm(path) + # POST /databases/import + def import + head :not_implemented and return end + end diff --git a/app/models/database_manager.rb b/app/models/database_manager.rb new file mode 100644 index 000000000..c76a9707e --- /dev/null +++ b/app/models/database_manager.rb @@ -0,0 +1,42 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +class DatabaseManager + SQLPATH = 'tmp/import.sql' + SECRETS = [:secret_key_base, :db_crypt_key] + SUFFIX = { + 'development' => 'dev', + 'test' => 'test', + 'production' => 'prod', + } + + class << self + def export_as_zip + dbname = ActiveRecord::Base.configurations[Rails.env]['database'] + filename = "#{dbname}.sql" + path = Rails.root.join("tmp/#{filename}") + + system('rake db:data:dump') + + zipfile = Tempfile.open("skyhopper") + ::Zip::File.open(zipfile.path, ::Zip::File::CREATE) do |zip| + zip.add(filename, path) + + Rails.application.secrets.each do |key, value| + next if value.nil? + zip.get_output_stream(key) { |io| io.write(value) } + end + end + + FileUtils.rm(path) + + zipfile + end + + end +end From b7be82f1d2ab6702fb1242583e34c107da89cb59 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 18 Oct 2016 15:36:41 +0900 Subject: [PATCH 010/133] Initial Update of Vuejs 2.0 --- frontend/package.json | 2 +- frontend/src/helper.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index e083fe990..9758ea427 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -21,7 +21,7 @@ "md5": "^2.0.0", "query-string": "^2.4.1", "serverspec-generator": "^1.0.0", - "vue": "^1.0.24", + "vue": "^2.0.3", "vue-ace": "0.0.1", "pdfmake-browserified": "^0.1.4", "aliasify": "^1.9.0", diff --git a/frontend/src/helper.ts b/frontend/src/helper.ts index 2227cf3fb..38e89e0d5 100644 --- a/frontend/src/helper.ts +++ b/frontend/src/helper.ts @@ -31,7 +31,7 @@ Vue.component('bootstrap-tooltip', { }, }, template: ` - + From 974e3a87db98a4a85691e0e14238035d5e1e012a Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 19 Oct 2016 17:21:19 +0900 Subject: [PATCH 011/133] Add some elements for importing DB --- app/assets/javascripts/databases.js | 31 +++++++++++++++++++++++++++ app/views/databases/index.html.erb | 33 +++++++++++++++++++++++++---- config/locales/ja.yml | 1 + 3 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 app/assets/javascripts/databases.js diff --git a/app/assets/javascripts/databases.js b/app/assets/javascripts/databases.js new file mode 100644 index 000000000..641dc2c13 --- /dev/null +++ b/app/assets/javascripts/databases.js @@ -0,0 +1,31 @@ +// +// Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +// +// This software is released under the MIT License. +// +// http://opensource.org/licenses/mit-license.php +// + +(function () { + 'use strict'; + + Vue.component('div-loader', Loader); + var modal = require('modal'); + + var vm = new Vue({ + el: '#db-manage', + data: function () { + return { + loading_export: false, + loading_import: false, + }; + }, + computed: { + loading: function () { return this.loading_import || this.loading_export; }, + }, + methods: { + }, + ready: function () { + }, + }); +})(); diff --git a/app/views/databases/index.html.erb b/app/views/databases/index.html.erb index 8abf332b1..cb1000d9d 100644 --- a/app/views/databases/index.html.erb +++ b/app/views/databases/index.html.erb @@ -1,7 +1,7 @@ <% provide(:title, t('infrastructures.database')) %>

    <%= t('infrastructures.database') %>

    -
    +
    @@ -13,9 +13,34 @@
  • <%= t('app_settings.msg.db_key')%>
  • - +
    +
    +
    +
    +
    +
    + <%= t('common.btn.import') %> +

    <%= t('app_settings.msg.db_import')%>

    +
      +
    • <%= t('app_settings.msg.env', {env: Rails.env.capitalize}) %>
    • +
    • <%= t('app_settings.msg.secret')%>
    • +
    • <%= t('app_settings.msg.db_key')%>
    • +
    + + +
    diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 4a95cc4d5..4f71107aa 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -93,6 +93,7 @@ ja: zabbix_updated: 'Zabbix の設定は正常に更新されました。' eip_limit_error: 'EIP を確保することが出来ません。EIP の個数制限を確認して下さい。' db_export: 'エクスポートしたZIPファイルには下記のファイルが含まれています。' + db_import: 'DB をインポートするには下記のファイルを含む ZIP ファイルを指定してください' env: 'SkyHopper%{env}.sql' secret: 'secret_key_base' db_key: 'db_crypt_key' From 75654afb00af22a43374f757ce5d186b6edac458 Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 26 Oct 2016 16:17:14 +0900 Subject: [PATCH 012/133] Implement DB importing function --- app/controllers/databases_controller.rb | 7 +++++- app/jobs/reload_secrets_job.rb | 20 +++++++++++++++ app/models/database_manager.rb | 33 +++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 app/jobs/reload_secrets_job.rb diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index 4a7659732..00c163de5 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -21,7 +21,12 @@ def export # POST /databases/import def import - head :not_implemented and return + # TODO: インポート中は他の操作ができないようにする + file = params.require(:file) + DatabaseManager.import_from_zip(file.path) + file.close + + redirect_to databases_path end end diff --git a/app/jobs/reload_secrets_job.rb b/app/jobs/reload_secrets_job.rb new file mode 100644 index 000000000..d842059ab --- /dev/null +++ b/app/jobs/reload_secrets_job.rb @@ -0,0 +1,20 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +class ReloadSecretsJob < ActiveJob::Base + queue_as :default + + # Ref: https://github.com/rails/rails/blob/634741d9721eb938c8bce38c109023178268e43d/railties/lib/rails/application.rb#L385 + def perform + Rails.application.remove_instance_variable(:@secrets) + rescue NameError => ex + # nop + ensure + Rails.application.secrets + end +end diff --git a/app/models/database_manager.rb b/app/models/database_manager.rb index c76a9707e..2810410fc 100644 --- a/app/models/database_manager.rb +++ b/app/models/database_manager.rb @@ -38,5 +38,38 @@ def export_as_zip zipfile end + def import(sqlpath, secrets) + env = SUFFIX[Rails.env] + secrets.each do |key, value| + path = Rails.root.join('secrets', "#{key}-#{env}") + File.write(path, value) + end + + ReloadSecretsJob.perform_now # runs in Rails process + ReloadSecretsJob.perform_later # runs in Sidekiq process + + system("rake db:data:load[#{sqlpath}]") + end + + + def import_from_zip(path) + zip = ::Zip::File.open(path) + validate_zip!(zip) + + FileUtils.rm(SQLPATH) if File.exist?(SQLPATH) + zip.glob('*.sql').first.extract(SQLPATH) + secrets = SECRETS.map { |name| [name, zip.read(name)] }.to_h + zip.close + + import(SQLPATH, secrets) + end + + private + def validate_zip!(zip) + SECRETS.each do |filename| + raise "#{filename} is not found in zip." unless zip.find_entry(filename) + end + raise 'SQL file is not found in zip.' if zip.glob('*.sql').empty? + end end end From 81463ea517d1343b54b2a8953eb89e007e297a77 Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 26 Oct 2016 16:46:08 +0900 Subject: [PATCH 013/133] Rubocop --- app/jobs/reload_secrets_job.rb | 2 +- app/models/database_manager.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/jobs/reload_secrets_job.rb b/app/jobs/reload_secrets_job.rb index d842059ab..715d1f4f2 100644 --- a/app/jobs/reload_secrets_job.rb +++ b/app/jobs/reload_secrets_job.rb @@ -12,7 +12,7 @@ class ReloadSecretsJob < ActiveJob::Base # Ref: https://github.com/rails/rails/blob/634741d9721eb938c8bce38c109023178268e43d/railties/lib/rails/application.rb#L385 def perform Rails.application.remove_instance_variable(:@secrets) - rescue NameError => ex + rescue NameError # rubocop:disable Lint/HandleExceptions # nop ensure Rails.application.secrets diff --git a/app/models/database_manager.rb b/app/models/database_manager.rb index 2810410fc..2a7ce0091 100644 --- a/app/models/database_manager.rb +++ b/app/models/database_manager.rb @@ -7,13 +7,13 @@ # class DatabaseManager - SQLPATH = 'tmp/import.sql' - SECRETS = [:secret_key_base, :db_crypt_key] + SQLPATH = 'tmp/import.sql'.freeze + SECRETS = [:secret_key_base, :db_crypt_key].freeze SUFFIX = { 'development' => 'dev', 'test' => 'test', 'production' => 'prod', - } + }.freeze class << self def export_as_zip From bfdea8e20755670229e5f529d85afff6b30eb64b Mon Sep 17 00:00:00 2001 From: candy Date: Tue, 1 Nov 2016 16:49:03 +0900 Subject: [PATCH 014/133] Install turnout gem and display the maintenance screen --- Gemfile | 1 + Gemfile.lock | 8 ++++++++ app/controllers/databases_controller.rb | 11 ++++++++--- app/models/maintenance_mode.rb | 24 ++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 app/models/maintenance_mode.rb diff --git a/Gemfile b/Gemfile index 2b583c571..9f6de66a2 100644 --- a/Gemfile +++ b/Gemfile @@ -62,6 +62,7 @@ gem 'sidekiq' # for Active Job gem "sidekiq-cron", "~> 0.4.0" # for Scheduled Job gem 'foreman', require: false +gem 'turnout' # for maintenance mode # Temporarily set ruby_dep version to 1.3.1 because it requires ruby 2.2.5 that is not yet available on amazon linux gem "ruby_dep", "~> 1.3.1" diff --git a/Gemfile.lock b/Gemfile.lock index eb433a539..6b504c012 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -300,6 +300,8 @@ GEM pundit (1.1.0) activesupport (>= 3.0.0) rack (1.6.4) + rack-accept (0.4.5) + rack (>= 0.4) rack-contrib (1.4.0) git-version-bump (~> 0.15) rack (~> 1.4) @@ -499,6 +501,11 @@ GEM timers (4.0.4) hitimes tins (1.12.0) + turnout (2.4.0) + i18n (~> 0.7) + rack (>= 1.3, < 3) + rack-accept (~> 0.4) + tilt (>= 1.4, < 3) tzinfo (1.2.2) thread_safe (~> 0.1) uglifier (3.0.2) @@ -614,6 +621,7 @@ DEPENDENCIES sqlite3 tapp therubyracer + turnout uglifier unicorn-rails yard diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index 00c163de5..be55fb2ed 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -21,10 +21,15 @@ def export # POST /databases/import def import - # TODO: インポート中は他の操作ができないようにする file = params.require(:file) - DatabaseManager.import_from_zip(file.path) - file.close + + MaintenanceMode.activate + + Thread.new do + DatabaseManager.import_from_zip(file.path) + file.close + MaintenanceMode.deactivate + end redirect_to databases_path end diff --git a/app/models/maintenance_mode.rb b/app/models/maintenance_mode.rb new file mode 100644 index 000000000..9b0ab5d51 --- /dev/null +++ b/app/models/maintenance_mode.rb @@ -0,0 +1,24 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +module MaintenanceMode + module_function + + def activate(settings = nil) + maint_file = Turnout::MaintenanceFile.default + maint_file.import(settings.stringify_keys) if settings.is_a?(Hash) + maint_file.write + Rails.logger.info("Maintenance mode has activated.\nReason: \"#{maint_file.reason}\"") + end + + def deactivate + Turnout::MaintenanceFile.default.delete + Rails.logger.info('Maintenance mode has deactivated.') + end + +end From bb2354bc2c64b99bc9d88a2ba64fc1920e715248 Mon Sep 17 00:00:00 2001 From: candy Date: Tue, 1 Nov 2016 16:57:45 +0900 Subject: [PATCH 015/133] I18n --- config/locales/en.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/locales/en.yml b/config/locales/en.yml index 8d16ad3bb..caaaae02c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -93,6 +93,7 @@ en: zabbix_updated: 'Zabbix Setting was successfully updated.' eip_limit_error: 'Cannot allocate EIP. Please check the limit of EIP.' db_export: 'When exporting SkyHopper Database into a zip file, it includes these files: ' + db_import: 'When importing SkyHopper Database, select a zip file which includes these files: ' env: 'SkyHopper%{env}.sql' secret: 'secret_key_base' db_key: 'db_crypt_key' From 150022670d4d8d861eaeec3a5c664c0ecb0730b3 Mon Sep 17 00:00:00 2001 From: candy Date: Mon, 7 Nov 2016 15:42:32 +0900 Subject: [PATCH 016/133] Set DatabasePolicy --- app/controllers/databases_controller.rb | 6 ++++++ app/policies/database_policy.rb | 11 +++++++++++ 2 files changed, 17 insertions(+) create mode 100644 app/policies/database_policy.rb diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index be55fb2ed..13434b533 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -11,6 +11,12 @@ class DatabasesController < ApplicationController authenticate_user! if AppSetting.set? end + before_action do + man = DatabaseManager.new + def man.policy_class; DatabasePolicy end + authorize man + end + # POST /databases/export def export time = Time.now.strftime('%Y%m%d%H%M%S') diff --git a/app/policies/database_policy.rb b/app/policies/database_policy.rb new file mode 100644 index 000000000..a3b82fd8c --- /dev/null +++ b/app/policies/database_policy.rb @@ -0,0 +1,11 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +class DatabasePolicy < ApplicationPolicy + master_admin :index?, :export?, :import? +end From c93b45c9ddaccf4b7243a42f4db8a5947646a0e9 Mon Sep 17 00:00:00 2001 From: candy Date: Mon, 7 Nov 2016 15:53:27 +0900 Subject: [PATCH 017/133] i18n --- config/locales/en.yml | 18 +++++++++++++----- config/locales/ja.yml | 18 +++++++++++++----- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index caaaae02c..55358deda 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -92,11 +92,6 @@ en: aws_keypair: 'SSH key used for SkyHopper System (Registered KeyPair from EC2 console that is linked with API key above)' zabbix_updated: 'Zabbix Setting was successfully updated.' eip_limit_error: 'Cannot allocate EIP. Please check the limit of EIP.' - db_export: 'When exporting SkyHopper Database into a zip file, it includes these files: ' - db_import: 'When importing SkyHopper Database, select a zip file which includes these files: ' - env: 'SkyHopper%{env}.sql' - secret: 'secret_key_base' - db_key: 'db_crypt_key' title: show: 'Welcome to SkyHopper!' setup: 'Setup' @@ -709,3 +704,16 @@ en: incrementHour: 'Increment Hour' decrementHour: 'Decrement Hour' pickHour: 'Pick Hour' + + databases: + db_management: 'Database Management' + msg: + env: 'SkyHopper%{env}.sql' + secret: 'secret_key_base' + db_key: 'db_crypt_key' + db_export: 'When exporting SkyHopper Database into a zip file, it includes these files: ' + db_import: 'When importing SkyHopper Database, select a zip file which includes these files: ' + db_import_finish: 'Database import has finished.' + db_import_warning: | + Database of SkyHopper will be replaced completely by the import operation. + Please be careful when using this. diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 4f71107aa..2c9d5da3f 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -92,11 +92,6 @@ ja: aws_keypair: 'SkyHopper のシステムが使用する SSH鍵(上記の APIキー に紐付けられた EC2 のコンソールから登録した鍵ペアを指定)' zabbix_updated: 'Zabbix の設定は正常に更新されました。' eip_limit_error: 'EIP を確保することが出来ません。EIP の個数制限を確認して下さい。' - db_export: 'エクスポートしたZIPファイルには下記のファイルが含まれています。' - db_import: 'DB をインポートするには下記のファイルを含む ZIP ファイルを指定してください' - env: 'SkyHopper%{env}.sql' - secret: 'secret_key_base' - db_key: 'db_crypt_key' title: show: 'SkyHopper へようこそ' setup: 'SkyHopper のセットアップ' @@ -707,3 +702,16 @@ ja: incrementHour: '1時間後' decrementHour: '1時間前' pickHour: '時間を選択してください' + + databases: + db_management: 'データベースの管理' + msg: + env: 'SkyHopper%{env}.sql' + secret: 'secret_key_base' + db_key: 'db_crypt_key' + db_export: 'エクスポートしたZIPファイルには下記のファイルが含まれています。' + db_import: 'DB をインポートするには下記のファイルを含む ZIP ファイルを指定してください' + db_import_finish: 'データベースのインポートが完了しました' + db_import_warning: | + この操作によって SkyHopper のデータベースは完全に置き換えられます。 + データがバックアップされていることを確認した上で、細心の注意を払って使用してください。 From 05ef677e135f73ead2397e71f212089df3accd56 Mon Sep 17 00:00:00 2001 From: candy Date: Mon, 7 Nov 2016 15:59:09 +0900 Subject: [PATCH 018/133] Change the layout of Database Management page --- app/views/databases/index.html.erb | 145 ++++++++++++++++++++--------- 1 file changed, 103 insertions(+), 42 deletions(-) diff --git a/app/views/databases/index.html.erb b/app/views/databases/index.html.erb index cb1000d9d..6d949e89d 100644 --- a/app/views/databases/index.html.erb +++ b/app/views/databases/index.html.erb @@ -1,48 +1,109 @@ <% provide(:title, t('infrastructures.database')) %>

    <%= t('infrastructures.database') %>

    -
    -
    -
    -
    - <%= t('common.btn.export') %> -

    <%= t('app_settings.msg.db_export')%>

    -
      -
    • <%= t('app_settings.msg.env', {env: Rails.env.capitalize}) %>
    • -
    • <%= t('app_settings.msg.secret')%>
    • -
    • <%= t('app_settings.msg.db_key')%>
    • -
    - - -
    -
    + +
    +
    +

    <%= t('databases.db_management') %>

    +

    +

    + + +

    -
    -
    -
    - <%= t('common.btn.import') %> -

    <%= t('app_settings.msg.db_import')%>

    -
      -
    • <%= t('app_settings.msg.env', {env: Rails.env.capitalize}) %>
    • -
    • <%= t('app_settings.msg.secret')%>
    • -
    • <%= t('app_settings.msg.db_key')%>
    • -
    - - - -
    -
    + + + + + + + +
    From 5f889417c56287a3576b6960ac438ad022bb01d3 Mon Sep 17 00:00:00 2001 From: candy Date: Mon, 7 Nov 2016 17:08:41 +0900 Subject: [PATCH 019/133] Add 'client_max_body_size 1g;' line to installation documents --- doc/installation/en/skyhopper.md | 2 ++ doc/installation/skyhopper.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/doc/installation/en/skyhopper.md b/doc/installation/en/skyhopper.md index f034d558d..797a15041 100644 --- a/doc/installation/en/skyhopper.md +++ b/doc/installation/en/skyhopper.md @@ -90,6 +90,8 @@ EOF ```sh $ sudo tee /etc/nginx/conf.d/skyhopper.conf </dev/null server { + client_max_body_size 1g; + listen 80; server_name skyhopper.local; #Setting the environment diff --git a/doc/installation/skyhopper.md b/doc/installation/skyhopper.md index 1e5948202..142978bf2 100644 --- a/doc/installation/skyhopper.md +++ b/doc/installation/skyhopper.md @@ -91,6 +91,8 @@ EOF ```sh $ sudo tee /etc/nginx/conf.d/skyhopper.conf </dev/null server { + client_max_body_size 1g; + listen 80; server_name skyhopper.local; #環境に合わせて設定 From 157164bb201d78e6d5f929a5b8f6f439aed40c4f Mon Sep 17 00:00:00 2001 From: candy Date: Mon, 7 Nov 2016 17:18:44 +0900 Subject: [PATCH 020/133] Rails.cache.clear after importing database --- app/models/database_manager.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/models/database_manager.rb b/app/models/database_manager.rb index 2a7ce0091..efd3daf8f 100644 --- a/app/models/database_manager.rb +++ b/app/models/database_manager.rb @@ -49,6 +49,7 @@ def import(sqlpath, secrets) ReloadSecretsJob.perform_later # runs in Sidekiq process system("rake db:data:load[#{sqlpath}]") + Rails.cache.clear end From bbdee59d5f8e8a256b245f7d907cd778b817a296 Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 9 Nov 2016 14:38:17 +0900 Subject: [PATCH 021/133] Separate modals from views/databases/index.html.erb --- app/views/databases/_modal_export.html.erb | 36 +++++++++ app/views/databases/_modal_import.html.erb | 49 ++++++++++++ app/views/databases/index.html.erb | 90 +--------------------- 3 files changed, 87 insertions(+), 88 deletions(-) create mode 100644 app/views/databases/_modal_export.html.erb create mode 100644 app/views/databases/_modal_import.html.erb diff --git a/app/views/databases/_modal_export.html.erb b/app/views/databases/_modal_export.html.erb new file mode 100644 index 000000000..5db954e63 --- /dev/null +++ b/app/views/databases/_modal_export.html.erb @@ -0,0 +1,36 @@ + + diff --git a/app/views/databases/_modal_import.html.erb b/app/views/databases/_modal_import.html.erb new file mode 100644 index 000000000..b24771542 --- /dev/null +++ b/app/views/databases/_modal_import.html.erb @@ -0,0 +1,49 @@ + + diff --git a/app/views/databases/index.html.erb b/app/views/databases/index.html.erb index 6d949e89d..c31240d89 100644 --- a/app/views/databases/index.html.erb +++ b/app/views/databases/index.html.erb @@ -18,92 +18,6 @@

    - - - - - - - + <%= render partial: 'modal_export' %> + <%= render partial: 'modal_import' %>
    From 3e1d90135d310111869fdee01d5c1d4294e132ad Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 9 Nov 2016 14:55:07 +0900 Subject: [PATCH 022/133] Correct glyph --- app/views/databases/_modal_import.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/databases/_modal_import.html.erb b/app/views/databases/_modal_import.html.erb index b24771542..fc172cca8 100644 --- a/app/views/databases/_modal_import.html.erb +++ b/app/views/databases/_modal_import.html.erb @@ -37,7 +37,7 @@ From 90d3b7579f7ee7a85790eb7c5868e2cdffd8b63a Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 9 Nov 2016 16:37:33 +0900 Subject: [PATCH 023/133] Enable to setup SkyHopper by importing DB --- app/controllers/databases_controller.rb | 18 +++++++++++++----- app/views/app_settings/show.html.erb | 6 ++++++ app/views/databases/_modal_import.html.erb | 8 +++++++- app/views/databases/index.html.erb | 12 +++++++----- config/locales/en.yml | 2 ++ config/locales/ja.yml | 2 ++ 6 files changed, 37 insertions(+), 11 deletions(-) diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index 13434b533..819a380ed 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -7,18 +7,22 @@ # class DatabasesController < ApplicationController - before_action do - authenticate_user! if AppSetting.set? - end + skip_before_action :appsetting_set? + + before_action if: :app_setting_is_set do + authenticate_user! - before_action do man = DatabaseManager.new def man.policy_class; DatabasePolicy end authorize man end + helper_method :app_setting_is_set + # POST /databases/export def export + authenticate_user! + time = Time.now.strftime('%Y%m%d%H%M%S') zipfile = DatabaseManager.export_as_zip send_file(zipfile.path, filename: "SkyHopper-db-#{Rails.env}-#{time}.zip") @@ -37,7 +41,11 @@ def import MaintenanceMode.deactivate end - redirect_to databases_path + redirect_to root_path end + private + def app_setting_is_set + @app_setting_is_set ||= AppSetting.set? + end end diff --git a/app/views/app_settings/show.html.erb b/app/views/app_settings/show.html.erb index 93600fd00..9cce02177 100644 --- a/app/views/app_settings/show.html.erb +++ b/app/views/app_settings/show.html.erb @@ -5,6 +5,10 @@
    <%= I18n.t("app_settings.title.setup") %> +
    <%= render partial: 'panel_content_system' %> @@ -17,3 +21,5 @@
    + +<%= render partial: 'databases/modal_import' %> diff --git a/app/views/databases/_modal_import.html.erb b/app/views/databases/_modal_import.html.erb index fc172cca8..104aff4ce 100644 --- a/app/views/databases/_modal_import.html.erb +++ b/app/views/databases/_modal_import.html.erb @@ -9,7 +9,13 @@ diff --git a/config/locales/en.yml b/config/locales/en.yml index 55358deda..b07faa97d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -707,6 +707,7 @@ en: databases: db_management: 'Database Management' + import_db: 'Import DB' msg: env: 'SkyHopper%{env}.sql' secret: 'secret_key_base' @@ -714,6 +715,7 @@ en: db_export: 'When exporting SkyHopper Database into a zip file, it includes these files: ' db_import: 'When importing SkyHopper Database, select a zip file which includes these files: ' db_import_finish: 'Database import has finished.' + db_import_intro: 'You can not perform any operations until the import is complete.' db_import_warning: | Database of SkyHopper will be replaced completely by the import operation. Please be careful when using this. diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 2c9d5da3f..94a122fa6 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -705,6 +705,7 @@ ja: databases: db_management: 'データベースの管理' + import_db: 'DB をインポート' msg: env: 'SkyHopper%{env}.sql' secret: 'secret_key_base' @@ -712,6 +713,7 @@ ja: db_export: 'エクスポートしたZIPファイルには下記のファイルが含まれています。' db_import: 'DB をインポートするには下記のファイルを含む ZIP ファイルを指定してください' db_import_finish: 'データベースのインポートが完了しました' + db_import_intro: 'インポートが完了するまでは一切の操作ができなくなります。' db_import_warning: | この操作によって SkyHopper のデータベースは完全に置き換えられます。 データがバックアップされていることを確認した上で、細心の注意を払って使用してください。 From aefc942647fc0c7ee9e85712d2aab73c6da7f635 Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 9 Nov 2016 17:03:01 +0900 Subject: [PATCH 024/133] minor change --- app/jobs/reload_secrets_job.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/jobs/reload_secrets_job.rb b/app/jobs/reload_secrets_job.rb index 715d1f4f2..a24f89b03 100644 --- a/app/jobs/reload_secrets_job.rb +++ b/app/jobs/reload_secrets_job.rb @@ -12,8 +12,6 @@ class ReloadSecretsJob < ActiveJob::Base # Ref: https://github.com/rails/rails/blob/634741d9721eb938c8bce38c109023178268e43d/railties/lib/rails/application.rb#L385 def perform Rails.application.remove_instance_variable(:@secrets) - rescue NameError # rubocop:disable Lint/HandleExceptions - # nop ensure Rails.application.secrets end From c42b1c4ab86b157489e284c5a528139c3d69f57e Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 9 Nov 2016 18:12:28 +0900 Subject: [PATCH 025/133] Validate zip file before activating maintenance mode --- app/controllers/databases_controller.rb | 3 ++- app/models/database_manager.rb | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index 819a380ed..775908d31 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -33,8 +33,9 @@ def export def import file = params.require(:file) - MaintenanceMode.activate + DatabaseManager.validate_zip_file!(file.path) + MaintenanceMode.activate Thread.new do DatabaseManager.import_from_zip(file.path) file.close diff --git a/app/models/database_manager.rb b/app/models/database_manager.rb index efd3daf8f..ec7665e82 100644 --- a/app/models/database_manager.rb +++ b/app/models/database_manager.rb @@ -65,6 +65,11 @@ def import_from_zip(path) import(SQLPATH, secrets) end + def validate_zip_file!(path) + zip = ::Zip::File.open(path) + validate_zip!(zip) + end + private def validate_zip!(zip) SECRETS.each do |filename| From bb8d6b957db53d0cbcb8a2b6b0c283a9cf0778ac Mon Sep 17 00:00:00 2001 From: candy Date: Fri, 11 Nov 2016 14:54:46 +0900 Subject: [PATCH 026/133] Simplify render --- app/views/databases/index.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/databases/index.html.erb b/app/views/databases/index.html.erb index 018025061..314671b60 100644 --- a/app/views/databases/index.html.erb +++ b/app/views/databases/index.html.erb @@ -20,6 +20,6 @@

    - <%= render partial: 'modal_export' if app_setting_is_set %> - <%= render partial: 'modal_import' %> + <%= render 'modal_export' if app_setting_is_set %> + <%= render 'modal_import' %>
    From 987764cef7c97801874cfe47d34631882e7d6405 Mon Sep 17 00:00:00 2001 From: candy Date: Fri, 11 Nov 2016 15:02:54 +0900 Subject: [PATCH 027/133] Change route resource 'databases' to singular form --- app/views/databases/_modal_export.html.erb | 2 +- app/views/databases/_modal_import.html.erb | 2 +- app/views/databases/{index.html.erb => show.html.erb} | 0 app/views/layouts/_navbar_top.html.erb | 2 +- config/routes.rb | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) rename app/views/databases/{index.html.erb => show.html.erb} (100%) diff --git a/app/views/databases/_modal_export.html.erb b/app/views/databases/_modal_export.html.erb index 5db954e63..8f770b844 100644 --- a/app/views/databases/_modal_export.html.erb +++ b/app/views/databases/_modal_export.html.erb @@ -20,7 +20,7 @@
    -
    + - <%= link_to t('.cancel', :default => t("helpers.links.cancel")), - serverspecs_path(infrastructure_id: @infra.try(:id)), class: 'btn-default btn' %> - - diff --git a/app/views/serverspecs/index.html.erb b/app/views/serverspecs/index.html.erb deleted file mode 100644 index 0f2618326..000000000 --- a/app/views/serverspecs/index.html.erb +++ /dev/null @@ -1,67 +0,0 @@ -<% provide(:title, I18n.t('serverspecs.serverspec')) %> -<%- model_class = Serverspec -%> -<% allow_change = @infrastructure_id ? current_user.admin? : current_user.master? && current_user.admin? %> -<% project_id = Infrastructure.find(@infrastructure_id).project_id if @infrastructure_id %> - - - - - - - - - -<% if allow_change %> - <%= link_to t('.new', default: t('serverspecs.btn.add')), - new_serverspec_path(infrastructure_id: @infrastructure_id), - class: 'btn btn-primary btn-small' %> - <%= link_to t('serverspecs.btn.generator'), - generator_serverspecs_path(infrastructure_id: @infrastructure_id), - class: 'btn btn-primary btn-small' %> -<% end %> - - - - - -<% content_for :sidebar do %><% end %> diff --git a/app/views/serverspecs/index.json.jbuilder b/app/views/serverspecs/index.json.jbuilder deleted file mode 100644 index fe385ad5d..000000000 --- a/app/views/serverspecs/index.json.jbuilder +++ /dev/null @@ -1,12 +0,0 @@ -json.array!(@serverspecs) do |serverspec| - json.extract! serverspec, :id, :description - json.serverspec_name serverspec.name - allow_change = @infrastructure_id ? current_user.admin? : current_user.master? && current_user.admin? - - if allow_change - json.edit_serverspec_path edit_serverspec_path(serverspec) - json.serverspec_path serverspec_path(serverspec) - end - - json.url serverspec_url(serverspec, format: :json) -end diff --git a/app/views/serverspecs/new.html.erb b/app/views/serverspecs/new.html.erb deleted file mode 100644 index 17913c0c6..000000000 --- a/app/views/serverspecs/new.html.erb +++ /dev/null @@ -1,6 +0,0 @@ -<% provide(:title, I18n.t('serverspecs.serverspec')+" | "+I18n.t('helpers.titles.new')) %> -<%- model_class = Serverspec -%> - -<%= render :partial => 'form' %> diff --git a/app/views/serverspecs/results.jbuilder b/app/views/serverspecs/results.jbuilder deleted file mode 100644 index 735a38aa3..000000000 --- a/app/views/serverspecs/results.jbuilder +++ /dev/null @@ -1,4 +0,0 @@ -json.array!(@serverspec_results) do |log| - json.extract! log, :id, :result_id, :physical_id, :message, :status, :created_at, :name -end -#json.serverspec_results @serverspec_results diff --git a/app/views/serverspecs/select.jbuilder b/app/views/serverspecs/select.jbuilder deleted file mode 100644 index 18a2ab6f8..000000000 --- a/app/views/serverspecs/select.jbuilder +++ /dev/null @@ -1,5 +0,0 @@ -json.available_auto_generated @is_available_auto_generated -json.individuals @individual_serverspecs -json.globals @global_serverspecs -json.selected_ids @selected_serverspec_ids -json.schedule @serverspec_schedule From 5aecb8793689b32b85d9b9eb628baa17a9f42e09 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 6 Dec 2016 15:29:31 +0900 Subject: [PATCH 034/133] Modified servertest folder, polocies and javascript from serverspec --- app/assets/javascripts/servertests.js | 67 +++++++ app/controllers/servertests_controller.rb | 220 ++++++++++++++++++++++ app/policies/servertest_policy.rb | 29 +++ app/views/servertests/_form.html.erb | 50 +++++ app/views/servertests/edit.html.erb | 6 + app/views/servertests/generator.html.erb | 17 ++ app/views/servertests/index.html.erb | 67 +++++++ app/views/servertests/index.json.jbuilder | 12 ++ app/views/servertests/new.html.erb | 6 + app/views/servertests/results.jbuilder | 4 + app/views/servertests/select.jbuilder | 5 + 11 files changed, 483 insertions(+) create mode 100644 app/assets/javascripts/servertests.js create mode 100644 app/controllers/servertests_controller.rb create mode 100644 app/policies/servertest_policy.rb create mode 100644 app/views/servertests/_form.html.erb create mode 100644 app/views/servertests/edit.html.erb create mode 100644 app/views/servertests/generator.html.erb create mode 100644 app/views/servertests/index.html.erb create mode 100644 app/views/servertests/index.json.jbuilder create mode 100644 app/views/servertests/new.html.erb create mode 100644 app/views/servertests/results.jbuilder create mode 100644 app/views/servertests/select.jbuilder diff --git a/app/assets/javascripts/servertests.js b/app/assets/javascripts/servertests.js new file mode 100644 index 000000000..c39418936 --- /dev/null +++ b/app/assets/javascripts/servertests.js @@ -0,0 +1,67 @@ +// +// Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +// +// This software is released under the MIT License. +// +// http://opensource.org/licenses/mit-license.php +// + +//browserify functions for vue filters functionality +var wrap = require('./modules/wrap'); +var listen = require('./modules/listen'); +var queryString = require('query-string').parse(location.search); +var modal = require('modal'); +var app; + +Vue.component('demo-grid', require('demo-grid.js')); + +var servertestIndex = new Vue({ + el: '#indexElement', + data: { + searchQuery: '', + gridColumns: ['servertest_name','description', 'category'], + gridData: [], + index: 'servertests', + picked: { + servertest_path: null, + edit_servertest_path: null + }, + }, + methods: { + can_edit: function() { + return this.picked.edit_servertest_path === null ? true : false; + }, + can_delete: function() { + return (this.picked.servertest_path === null) ? true: false; + }, + delete_entry: function() { + var self = this; + console.log(self.picked.servertest_path); + modal.Confirm(t('servertests.servertest'), t('servertests.msg.delete_servertest'), 'danger').done(function () { + $.ajax({ + type: "POST", + url: self.picked.servertest_path, + dataType: "json", + data: {"_method":"delete"}, + success: function (data) { + location.reload(); + }, + }).fail(modal.AlertForAjaxStdError()); + }); + }, + show_servertest: function(servertest_id) { + $.ajax({ + url : "/servertests/" + servertest_id, + type : "GET", + success : function (data) { + $("#value-information").html(data); + } + }); + document.getElementById('value').style.display=''; + } + }, +}); + + + +require("serverspec-gen"); diff --git a/app/controllers/servertests_controller.rb b/app/controllers/servertests_controller.rb new file mode 100644 index 000000000..ad0f3e4ec --- /dev/null +++ b/app/controllers/servertests_controller.rb @@ -0,0 +1,220 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +class ServertestsController < ApplicationController + include Concerns::InfraLogger + + before_action :set_servertest, only: [:update, :show, :edit, :destroy] + + # --------------- Auth + before_action :authenticate_user! + + before_action do + authorize(@serverspec || Servertest.new(infrastructure_id: have_infra?)) + end + + # GET /serverspecs + def index + @infrastructure_id = params[:infrastructure_id] + page = params[:page] + + @infrastructure_name = Infrastructure.find(@infrastructure_id).stack_name if @infrastructure_id + @servertests = Servertest.where(infrastructure_id: @infrastructure_id).page(page) + + respond_to do |format| + format.json + format.html + end + end + + # GET /serverspecs/new + def new + infra_id = params[:infrastructure_id] + + @servertest = Servertest.new(infrastructure_id: infra_id) + @servertest.value = %!require 'spec_helper'\n\n! + end + + # GET /serverspecs/1 + def show + render text: @serverspec.value + end + + # POST /serverspecs/1 + def update + if @servertest.update(global_serverspec_params) + redirect_to servertests_path, notice: I18n.t('serverspecs.msg.updated') + else + flash.now[:alert] = @servertest.errors[:value] if @serverspec.errors[:value] + render action: 'edit' + end + end + + # POST /serverspecs + def create + @servertest = Servertest.new(global_serverspec_params) + + infra_id = @servertest.infrastructure_id + + begin + @servertest.save! + rescue => ex + raise ex if ajax? + flash.now[:alert] = @servertest.errors[:value] if @servertest.errors[:value] + render action: 'new', infrastructure_id: infra_id; return + end + + if ajax? + render text: I18n.t('serverspecs.msg.created') and return + else + redirect_to servertests_path(infrastructure_id: infra_id), + notice: I18n.t('serverspecs.msg.created') + end + end + + # GET /serverspecs/1/edit + def edit + end + + # GET /serverspecs/generator + def generator + @infra = Infrastructure.find(params[:infrastructure_id]) if params[:infrastructure_id] + end + + # DELETE /serverspecs/1 + def destroy + infra_id = @servertest.infrastructure_id + @servertest.destroy + + redirect_to servertests_path(infrastructure_id: infra_id), notice: I18n.t('serverspecs.msg.deleted') + end + + # GET /serverspecs/select + def select + physical_id = params.require(:physical_id) + infra_id = params.require(:infra_id) + + resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) + @selected_serverspec_ids = resource.all_serverspec_ids + + serverspecs = Servertest.for_infra(infra_id) + @individual_serverspecs, @global_serverspecs = serverspecs.partition{|spec| spec.infrastructure_id } + node = Node.new(physical_id) + @is_available_auto_generated = node.have_auto_generated + + @serverspec_schedule = ServerspecSchedule.find_or_create_by(physical_id: physical_id) + end + + # GET /serverspecs/results + def results + physical_id = params.require(:physical_id) + infra_id = params.require(:infra_id) + resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) + + @serverspec_results = resource.serverspec_results.order("created_at desc") + + respond_to do |format| + format.json { render json: @serverspec_results.as_json(only: [:id, :status, :message, :created_at], + include: [{serverspec_result_details: {only: [:id]}},{serverspecs: {only:[:name]}}, {resource: {only: [:physical_id]}} ]) } + end + end + + + # TODO: refactor + # POST /serverspecs/run + def run + physical_id = params.require(:physical_id) + infra_id = params.require(:infra_id) + serverspec_ids = params.require(:serverspec_ids) + resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) + if selected_auto_generated = serverspec_ids.include?('-1') + serverspec_ids.delete('-1') + end + + begin + resp = ServerspecJob.perform_now( + physical_id, infra_id, current_user.id, + serverspec_ids: serverspec_ids, auto_generated: selected_auto_generated + ) + rescue => ex + # serverspec が正常に実行されなかったとき + render text: ex.message, status: 500 and return + end + + case resp[:status_text] + when 'success' + render_msg = I18n.t('serverspecs.msg.success', physical_id: physical_id) + when 'pending' + render_msg = I18n.t('serverspecs.msg.pending', physical_id: physical_id, pending_specs: resp[:short_msg]) + when 'failed' + render_msg = I18n.t('serverspecs.msg.failure', physical_id: physical_id, failure_specs: resp[:short_msg]) + end + + ServerspecResult.create( + resource_id: resource.id, + status: resp[:status_text], + message: resp[:message], + serverspec_ids: serverspec_ids + ) + render text: render_msg, status: 200 and return + end + + + # Generate serverspec to connect to RDS instance + # PUT /serverspecs/create_for_rds + def create_for_rds + infra_id = params.require(:infra_id) + physical_id = params.require(:physical_id) + username = params.require(:username) + password = params.require(:password) + database = params[:database] + database = nil if database.blank? + + infra = Infrastructure.find(infra_id) + rds = RDS.new(infra, physical_id) + + Servertest.create_rds(rds, username, password, infra_id, database) + + render text: I18n.t('serverspecs.msg.generated'), status: 201 and return + end + + # POST /serverspecs/schedule + def schedule + physical_id = params.require(:physical_id) + infra_id = params.require(:infra_id) + schedule = params.require(:schedule).permit(:enabled, :frequency, :day_of_week, :time) + + ss = ServerspecSchedule.find_by(physical_id: physical_id) + ss.update_attributes!(schedule) + + if ss.enabled? + PeriodicServerspecJob.set( + wait_until: ss.next_run + ).perform_later(physical_id, infra_id, current_user.id) + end + + render text: I18n.t('schedules.msg.serverspec_updated'), status: 200 and return + end + + + private + + def set_servertest + @servertest = Servertest.find(params.require(:id)) + end + + def global_serverspec_params + params.require(:servertest).permit(:name, :description, :value, :category, :infrastructure_id) + end + + def have_infra? + return params[:infra_id] || params[:infrastructure_id] || params[:serverspec][:infrastructure_id] + rescue + return nil + end +end diff --git a/app/policies/servertest_policy.rb b/app/policies/servertest_policy.rb new file mode 100644 index 000000000..6e303d881 --- /dev/null +++ b/app/policies/servertest_policy.rb @@ -0,0 +1,29 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +class ServertestPolicy < ApplicationPolicy + %i[index? show?].each do |action| + define_method(action) do + if record.infrastructure + user.allow?(record.infrastructure) + else + true + end + end + end + + %i[new? update? create? edit? destroy? select? results? run? create_for_rds? schedule? generator?].each do |action| + define_method(action) do + if record.infrastructure + user.allow?(record.infrastructure) && user.admin? + else + user.master? and user.admin? + end + end + end +end diff --git a/app/views/servertests/_form.html.erb b/app/views/servertests/_form.html.erb new file mode 100644 index 000000000..5831899cd --- /dev/null +++ b/app/views/servertests/_form.html.erb @@ -0,0 +1,50 @@ +<%= form_for @servertest, html: { class: 'form-horizontal', role: 'form' } do |f| %> + <% if @servertest.infrastructure_id %> +
    + <%= f.label :infrastructure_id, t('infrastructures.infrastructure'), class: 'control-label col-sm-2' %> +
    + <%= uneditable_input(@servertest.infrastructure.stack_name) %> + <%= f.hidden_field :infrastructure_id %> +
    +
    + <% end %> + +
    + <%= f.label :name, t('serverspecs.name'), class: 'control-label col-sm-2'%> +
    + <%= f.text_field :name, class: 'form-control', required: true%> +
    +
    + +
    + <%= f.label :description, t('serverspecs.description'), class: 'control-label col-sm-2'%> +
    + <%= f.text_field :description, class: ' form-control text_field_no_validation'%> +
    +
    + +
    + <%= f.label :value, t('serverspecs.value'), class: 'control-label col-sm-2'%> +
    + <%= f.text_area :value, class: 'form-control', required: true%> +
    +
    + +
    + <%= f.label :value, t('serverspecs.category'), class: 'control-label col-sm-2'%> +
    + <%= f.radio_button(:category, :awspec) %> + <%= label(:category, "Awspec") %> +
    +
    + <%= f.radio_button(:category, :serverspec) %> + <%= label(:category, "Serverspec") %> +
    +
    + +
    + <%= f.submit t('common.btn.submit'), :class => 'btn btn-primary create'%> + <%= link_to t('.cancel', :default => t("helpers.links.cancel")), + servertests_path(infrastructure_id: @servertest.infrastructure_id), class: 'btn-default btn' %> +
    +<% end %> diff --git a/app/views/servertests/edit.html.erb b/app/views/servertests/edit.html.erb new file mode 100644 index 000000000..13c01dd4f --- /dev/null +++ b/app/views/servertests/edit.html.erb @@ -0,0 +1,6 @@ +<% provide(:title, I18n.t('serverspecs.serverspec')+" | "+I18n.t('helpers.titles.edit')) %> +<%- model_class = Servertest -%> + +<%= render partial: 'form' %> diff --git a/app/views/servertests/generator.html.erb b/app/views/servertests/generator.html.erb new file mode 100644 index 000000000..64d0e3398 --- /dev/null +++ b/app/views/servertests/generator.html.erb @@ -0,0 +1,17 @@ +<% provide(:title, I18n.t('serverspecs.generator.title')) %> +
    + + +
    + +
    + + <%= link_to t('.cancel', :default => t("helpers.links.cancel")), + servertest_path(infrastructure_id: @infra.try(:id)), class: 'btn-default btn' %> +
    +
    diff --git a/app/views/servertests/index.html.erb b/app/views/servertests/index.html.erb new file mode 100644 index 000000000..eb8bedd97 --- /dev/null +++ b/app/views/servertests/index.html.erb @@ -0,0 +1,67 @@ +<% provide(:title, I18n.t('servertests.servertest')) %> +<%- model_class = Servertest -%> +<% allow_change = @infrastructure_id ? current_user.admin? : current_user.master? && current_user.admin? %> +<% project_id = Infrastructure.find(@infrastructure_id).project_id if @infrastructure_id %> + + + + + + + + + +<% if allow_change %> + <%= link_to t('.new', default: t('servertests.btn.add')), + new_servertest_path(infrastructure_id: @infrastructure_id), + class: 'btn btn-primary btn-small' %> + <%= link_to t('servertests.btn.generator'), + generator_servertests_path(infrastructure_id: @infrastructure_id), + class: 'btn btn-primary btn-small' %> +<% end %> + + + + + +<% content_for :sidebar do %><% end %> diff --git a/app/views/servertests/index.json.jbuilder b/app/views/servertests/index.json.jbuilder new file mode 100644 index 000000000..86191c980 --- /dev/null +++ b/app/views/servertests/index.json.jbuilder @@ -0,0 +1,12 @@ +json.array!(@servertests) do |servertest| + json.extract! servertest, :id, :description, :category + json.servertest_name servertest.name + allow_change = @infrastructure_id ? current_user.admin? : current_user.master? && current_user.admin? + + if allow_change + json.edit_servertest_path edit_servertest_path(servertest) + json.servertest_path servertest_path(servertest) + end + + json.url servertest_url(servertest, format: :json) +end diff --git a/app/views/servertests/new.html.erb b/app/views/servertests/new.html.erb new file mode 100644 index 000000000..e698bf6e6 --- /dev/null +++ b/app/views/servertests/new.html.erb @@ -0,0 +1,6 @@ +<% provide(:title, I18n.t('serverspecs.serverspec')+" | "+I18n.t('helpers.titles.new')) %> +<%- model_class = Servertest -%> + +<%= render :partial => 'form' %> diff --git a/app/views/servertests/results.jbuilder b/app/views/servertests/results.jbuilder new file mode 100644 index 000000000..735a38aa3 --- /dev/null +++ b/app/views/servertests/results.jbuilder @@ -0,0 +1,4 @@ +json.array!(@serverspec_results) do |log| + json.extract! log, :id, :result_id, :physical_id, :message, :status, :created_at, :name +end +#json.serverspec_results @serverspec_results diff --git a/app/views/servertests/select.jbuilder b/app/views/servertests/select.jbuilder new file mode 100644 index 000000000..18a2ab6f8 --- /dev/null +++ b/app/views/servertests/select.jbuilder @@ -0,0 +1,5 @@ +json.available_auto_generated @is_available_auto_generated +json.individuals @individual_serverspecs +json.globals @global_serverspecs +json.selected_ids @selected_serverspec_ids +json.schedule @serverspec_schedule From 97ef031d40ae350fc676b904ed1c298c41f4049d Mon Sep 17 00:00:00 2001 From: deppbot Date: Thu, 8 Dec 2016 15:16:30 +0800 Subject: [PATCH 035/133] Bundle Update on 2016-12-08 --- Gemfile.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index acb959d00..50ed0f3d9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,13 +47,13 @@ GEM activesupport (>= 3.0.0) rspec awesome_print (1.7.0) - aws-sdk (2.6.30) - aws-sdk-resources (= 2.6.30) - aws-sdk-core (2.6.30) + aws-sdk (2.6.34) + aws-sdk-resources (= 2.6.34) + aws-sdk-core (2.6.34) aws-sigv4 (~> 1.0) jmespath (~> 1.0) - aws-sdk-resources (2.6.30) - aws-sdk-core (= 2.6.30) + aws-sdk-resources (2.6.34) + aws-sdk-core (= 2.6.34) aws-sdk-v1 (1.66.0) json (~> 1.4) nokogiri (>= 1.4.4) @@ -137,12 +137,12 @@ GEM coffee-script-source (1.11.1) concurrent-ruby (1.0.2) connection_pool (2.2.1) - coveralls (0.8.16) + coveralls (0.8.17) json (>= 1.8, < 3) simplecov (~> 0.12.0) - term-ansicolor (~> 1.3.0) + term-ansicolor (~> 1.3) thor (~> 0.19.1) - tins (>= 1.6.0, < 2) + tins (~> 1.6) database_cleaner (1.5.3) debug_inspector (0.0.2) devise (3.5.10) @@ -237,7 +237,7 @@ GEM mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) mini_portile2 (2.1.0) - minitest (5.10.0) + minitest (5.10.1) mixlib-archive (0.2.0) mixlib-log mixlib-authentication (1.4.1) @@ -271,7 +271,7 @@ GEM notiffany (0.1.1) nenv (~> 0.1) shellany (~> 0.0) - ohai (8.22.0) + ohai (8.22.1) chef-config (>= 12.5.0.alpha.1, < 13) ffi (~> 1.9) ffi-yajl (~> 2.2) @@ -284,7 +284,7 @@ GEM systemu (~> 2.6.4) wmi-lite (~> 1.0) orm_adapter (0.5.0) - parser (2.3.3.0) + parser (2.3.3.1) ast (~> 2.2) plist (3.2.0) powerpack (0.1.1) @@ -342,7 +342,7 @@ GEM thor (>= 0.18.1, < 2.0) rainbow (2.1.0) raindrops (0.17.0) - rake (11.3.0) + rake (12.0.0) rb-fsevent (0.9.8) rb-inotify (0.9.7) ffi (>= 0.5.0) @@ -429,7 +429,7 @@ GEM ruby_dep (1.3.1) rubyntlm (0.6.1) rubyzip (1.2.0) - rufus-scheduler (3.3.0) + rufus-scheduler (3.3.1) tzinfo sass (3.4.22) sass-rails (5.0.6) @@ -454,7 +454,7 @@ GEM connection_pool (~> 2.2, >= 2.2.0) rack-protection (>= 1.5.0) redis (~> 3.2, >= 3.2.1) - sidekiq-cron (0.4.4) + sidekiq-cron (0.4.5) redis-namespace (>= 1.5.2) rufus-scheduler (>= 2.0.24) sidekiq (>= 4.2.1) @@ -469,7 +469,7 @@ GEM tilt (>= 1.3, < 3) sky_zabbix (2.2.0.1.2) slop (3.6.0) - specinfra (2.66.0) + specinfra (2.66.2) net-scp net-ssh (>= 2.7, < 4.0) net-telnet @@ -493,7 +493,7 @@ GEM systemu (2.6.5) tapp (1.5.0) thor - term-ansicolor (1.3.2) + term-ansicolor (1.4.0) tins (~> 1.0) therubyracer (0.12.2) libv8 (~> 3.16.14.0) @@ -531,10 +531,10 @@ GEM logging (>= 1.6.1, < 3.0) nori (~> 2.0) rubyntlm (~> 0.6.0, >= 0.6.1) - winrm-elevated (1.0.1) + winrm-elevated (1.1.0) winrm (~> 2.0) winrm-fs (~> 1.0) - winrm-fs (1.0.0) + winrm-fs (1.0.1) erubis (~> 2.7) logging (>= 1.6.1, < 3.0) rubyzip (~> 1.1) From 64a8e5ad01da1fa7435f31b12f5bba9cec02d54f Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Thu, 8 Dec 2016 17:59:12 +0900 Subject: [PATCH 036/133] Modified migration files that adds references to each foreign keys and changed routes and servertest controller methods model and views --- .gitignore | 2 ++ app/controllers/ec2_instances_controller.rb | 2 +- app/controllers/nodes_controller.rb | 8 +++---- app/controllers/servertests_controller.rb | 6 ++--- app/models/dish.rb | 4 ++-- app/models/resource.rb | 8 +++---- app/models/resource_serverspec.rb | 12 ---------- app/models/resource_status.rb | 2 +- app/models/serverspec_schedule.rb | 24 ------------------- app/models/servertest.rb | 4 ++++ app/views/infrastructures/index.html.erb | 2 +- app/views/infrastructures/index.jbuilder | 2 +- app/views/servertests/generator.html.erb | 2 +- app/views/servertests/index.html.erb | 6 ++--- app/views/vue/_serverspec_tabpane.html.erb | 4 ++-- config/locales/en.yml | 4 ++-- config/locales/ja.yml | 4 ++-- config/routes.rb | 2 +- ...32726_rename_serverspecs_to_servertests.rb | 1 + ...erverspec_results_to_servertest_results.rb | 1 + ...verspecs_table_and_serverspec_id_column.rb | 4 ++++ ..._details_table_and_serverspec_id_column.rb | 3 +++ ...rverspec_table_and_serverspec_id_column.rb | 2 ++ frontend/src/models/ec2_instance.ts | 18 +++++++------- spec/factories/serverspec_schedules.rb | 20 ---------------- 25 files changed, 54 insertions(+), 93 deletions(-) delete mode 100644 app/models/resource_serverspec.rb delete mode 100644 app/models/serverspec_schedule.rb delete mode 100644 spec/factories/serverspec_schedules.rb diff --git a/.gitignore b/.gitignore index e7997a6cd..58eb42d28 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,8 @@ vendor/bower_components /frontend/node_modules/ /frontend/typings/ +# MAC system files +.DS_Store #emacs backup exclude during commit (clean files) diff --git a/app/controllers/ec2_instances_controller.rb b/app/controllers/ec2_instances_controller.rb index 2cb3cccdc..c011f05a9 100644 --- a/app/controllers/ec2_instances_controller.rb +++ b/app/controllers/ec2_instances_controller.rb @@ -156,7 +156,7 @@ def reboot # @return [String] JSON. {status: Boolean} def serverspec_status physical_id = params.require(:id) - status = ! Resource.find_by(physical_id: physical_id).status.serverspec.failed? + status = ! Resource.find_by(physical_id: physical_id).status.servertest.failed? render json: {status: status} end diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb index 02625480c..99da629c5 100644 --- a/app/controllers/nodes_controller.rb +++ b/app/controllers/nodes_controller.rb @@ -105,7 +105,7 @@ def show @info = {} status = resource.status @info[:cook_status] = status.cook - @info[:serverspec_status] = status.serverspec + @info[:serverspec_status] = status.servertest @info[:update_status] = status.yum @dishes = Dish.valid_dishes(@infra.project_id) @@ -371,7 +371,7 @@ def update_runlist(physical_id: nil, infrastructure: nil, runlist: nil, dish_id: # change cookstatus to unexected r.status.cook.un_executed! - r.status.serverspec.un_executed! + r.status.servertest.un_executed! infra_logger_success("Updating runlist for #{physical_id} is successfully updated.") return {status: true, message: nil} @@ -385,7 +385,7 @@ def cook_node(infrastructure, physical_id, whyrun) r = infrastructure.resource(physical_id) r.status.cook.inprogress! - r.status.serverspec.un_executed! + r.status.servertest.un_executed! node = Node.new(physical_id) node.wait_search_index log = [] @@ -430,7 +430,7 @@ def exec_yum_update(infra, physical_id, security=true, exec=false) r = this_infra.resource(physical_id) r.status.yum.inprogress! - r.status.serverspec.un_executed! if exec + r.status.servertest.un_executed! if exec node = Node.new(physical_id) diff --git a/app/controllers/servertests_controller.rb b/app/controllers/servertests_controller.rb index ad0f3e4ec..ef57e55aa 100644 --- a/app/controllers/servertests_controller.rb +++ b/app/controllers/servertests_controller.rb @@ -94,7 +94,7 @@ def destroy redirect_to servertests_path(infrastructure_id: infra_id), notice: I18n.t('serverspecs.msg.deleted') end - # GET /serverspecs/select + # GET /servertests/select def select physical_id = params.require(:physical_id) infra_id = params.require(:infra_id) @@ -102,12 +102,12 @@ def select resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) @selected_serverspec_ids = resource.all_serverspec_ids - serverspecs = Servertest.for_infra(infra_id) + serverspecs = Servertest.for_infra_serverspec(infra_id) @individual_serverspecs, @global_serverspecs = serverspecs.partition{|spec| spec.infrastructure_id } node = Node.new(physical_id) @is_available_auto_generated = node.have_auto_generated - @serverspec_schedule = ServerspecSchedule.find_or_create_by(physical_id: physical_id) + @serverspec_schedule = ServertestSchedule.find_or_create_by(physical_id: physical_id) end # GET /serverspecs/results diff --git a/app/models/dish.rb b/app/models/dish.rb index 7d58abc38..544ffb42b 100644 --- a/app/models/dish.rb +++ b/app/models/dish.rb @@ -9,8 +9,8 @@ class Dish < ActiveRecord::Base belongs_to :project has_many :resources - has_many :dish_serverspecs - has_many :serverspecs, through: :dish_serverspecs + has_many :dish_servertests + has_many :servertests, through: :dish_servertests serialize :runlist diff --git a/app/models/resource.rb b/app/models/resource.rb index bd730b416..dd1f0a0c7 100644 --- a/app/models/resource.rb +++ b/app/models/resource.rb @@ -10,13 +10,13 @@ class Resource < ActiveRecord::Base belongs_to :infrastructure belongs_to :dish - has_many :resource_serverspecs - has_many :serverspecs, through: :resource_serverspecs + has_many :resource_servertests + has_many :servertests, through: :resource_servertests has_many :status, dependent: :delete_all, class_name: 'ResourceStatus' has_many :serverspec_results has_many :operation_durations - has_one :serverspec_schedule, dependent: :destroy, foreign_key: 'physical_id', primary_key: 'physical_id' + has_one :servertest_schedule, dependent: :destroy, foreign_key: 'physical_id', primary_key: 'physical_id' validates :physical_id, uniqueness: true @@ -31,7 +31,7 @@ class Resource < ActiveRecord::Base # @XXX ActiveRecord::Relation を返したい。だけど arel の union が relation を返してくれなくてうまくいかない。 # @return [Array] def all_serverspecs - self.serverspecs | (self.dish.try(:serverspecs) || []) + self.servertests | (self.dish.try(:servertests) || []) end # XXX: パフォーマンスがきになる. all_serverspecs のほうが relation を返せば pluck が使える diff --git a/app/models/resource_serverspec.rb b/app/models/resource_serverspec.rb deleted file mode 100644 index 7e561a416..000000000 --- a/app/models/resource_serverspec.rb +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -class ResourceServerspec < ActiveRecord::Base - belongs_to :resource, dependent: :destroy - belongs_to :serverspec, dependent: :destroy -end diff --git a/app/models/resource_status.rb b/app/models/resource_status.rb index bc2c8124f..f4b419556 100644 --- a/app/models/resource_status.rb +++ b/app/models/resource_status.rb @@ -10,7 +10,7 @@ class ResourceStatus < ActiveRecord::Base belongs_to :resource enum value: %i(success failed pending un_executed inprogress) - enum kind: %i(serverspec cook yum) + enum kind: %i(servertest cook yum) kinds.each do |k, v| scope k, -> { find_by(kind: v) } diff --git a/app/models/serverspec_schedule.rb b/app/models/serverspec_schedule.rb deleted file mode 100644 index 0a915308e..000000000 --- a/app/models/serverspec_schedule.rb +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -class ServerspecSchedule < Schedule - belongs_to :resource, foreign_key: 'physical_id', primary_key: 'physical_id' - - before_update :delete_enqueued_jobs - after_destroy :delete_enqueued_jobs - - JOB_CLASS_NAME = PeriodicServerspecJob.to_s.freeze - - def delete_enqueued_jobs - jobs = Sidekiq::ScheduledSet.new.select { |job| - args = job.args[0] - args['job_class'] == JOB_CLASS_NAME && args['arguments'][0] == self.physical_id - } - jobs.each(&:delete) - end -end diff --git a/app/models/servertest.rb b/app/models/servertest.rb index 4d55a2388..ae61fed78 100644 --- a/app/models/servertest.rb +++ b/app/models/servertest.rb @@ -32,6 +32,10 @@ def for_infra(infrastructure_id) where(infrastructure_id: [nil, infrastructure_id]).to_a end + def for_infra_serverspec(infrastructure_id) + where(infrastructure_id: [nil, infrastructure_id], category: :serverspec).to_a + end + def global where(infrastructure_id: nil) end diff --git a/app/views/infrastructures/index.html.erb b/app/views/infrastructures/index.html.erb index 624a08aab..9fe348253 100644 --- a/app/views/infrastructures/index.html.erb +++ b/app/views/infrastructures/index.html.erb @@ -40,7 +40,7 @@ diff --git a/app/views/infrastructures/index.jbuilder b/app/views/infrastructures/index.jbuilder index 6c1a661b1..c5c6fe92c 100644 --- a/app/views/infrastructures/index.jbuilder +++ b/app/views/infrastructures/index.jbuilder @@ -16,7 +16,7 @@ json.array!(@infrastructures) do |infra| json.edit_infrastructure_path edit_infra(infra) json.button_detach_stack button_detach_stack(infra) json.button_delete_stack button_delete_stack(infra) - json.serverspecs_path serverspecs_path(infrastructure_id: infra.id) + json.servertests_path servertests_path(infrastructure_id: infra.id) json.url infrastructure_url(infra, format: :json) diff --git a/app/views/servertests/generator.html.erb b/app/views/servertests/generator.html.erb index 64d0e3398..598265ce7 100644 --- a/app/views/servertests/generator.html.erb +++ b/app/views/servertests/generator.html.erb @@ -12,6 +12,6 @@
    <%= link_to t('.cancel', :default => t("helpers.links.cancel")), - servertest_path(infrastructure_id: @infra.try(:id)), class: 'btn-default btn' %> + servertests_path(infrastructure_id: @infra.try(:id)), class: 'btn-default btn' %>
    diff --git a/app/views/servertests/index.html.erb b/app/views/servertests/index.html.erb index eb8bedd97..fc29f31a3 100644 --- a/app/views/servertests/index.html.erb +++ b/app/views/servertests/index.html.erb @@ -49,12 +49,12 @@ <% if allow_change %> - <%= link_to t('.new', default: t('servertests.btn.add')), + <%= link_to t('.new', default: t('serverspecs.btn.add')), new_servertest_path(infrastructure_id: @infrastructure_id), class: 'btn btn-primary btn-small' %> - <%= link_to t('servertests.btn.generator'), + <%= link_to t('serverspecs.btn.generator'), generator_servertests_path(infrastructure_id: @infrastructure_id), - class: 'btn btn-primary btn-small' %> + class: 'btn btn-default btn-small' %> <% end %> diff --git a/app/views/vue/_serverspec_tabpane.html.erb b/app/views/vue/_serverspec_tabpane.html.erb index 7823607a3..1becf1720 100644 --- a/app/views/vue/_serverspec_tabpane.html.erb +++ b/app/views/vue/_serverspec_tabpane.html.erb @@ -61,12 +61,12 @@
    diff --git a/config/locales/en.yml b/config/locales/en.yml index 2138756f8..118ca7351 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -343,10 +343,10 @@ en: run: 'Run Serverspecs' results: 'Serverspec Results' btn: - add: 'Add Serverspec' + add: 'Add Servertest' create: 'Create Serverspec' run: 'Run Serverspecs' - generator: 'Generator' + generator: 'Serverspec Generator' msg: created: 'Serverspec was successfully created.' updated: 'Serverspec was successfully updated.' diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 3b4fd7b34..8961e4685 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -341,10 +341,10 @@ ja: run: 'Serverspec の実行' results: 'Serverspec の結果' btn: - add: 'Serverspec の追加' + add: 'Servertest の追加' create: 'Serverspec の作成' run: 'Serverspec の実行' - generator: 'ジェネレータ' + generator: 'Serverspec ジェネレータ' msg: created: 'Serverspec が正常に追加されました' updated: 'Serverspec が正常に更新されました' diff --git a/config/routes.rb b/config/routes.rb index db723700e..9b55e86a3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -82,7 +82,7 @@ post 'reboot' post 'detach' post 'terminate' - get 'servertest_status' + get 'serverspec_status' post 'register_to_elb' post 'deregister_from_elb' post 'elb_submit_groups' diff --git a/db/migrate/20161205032726_rename_serverspecs_to_servertests.rb b/db/migrate/20161205032726_rename_serverspecs_to_servertests.rb index 51d617556..9e6edf8ce 100644 --- a/db/migrate/20161205032726_rename_serverspecs_to_servertests.rb +++ b/db/migrate/20161205032726_rename_serverspecs_to_servertests.rb @@ -1,5 +1,6 @@ class RenameServerspecsToServertests < ActiveRecord::Migration def change rename_table :serverspecs, :servertests + add_reference :infrastructures, :infrastructure_id, index: true end end diff --git a/db/migrate/20161205032930_rename_serverspec_results_to_servertest_results.rb b/db/migrate/20161205032930_rename_serverspec_results_to_servertest_results.rb index a5d97dab0..6256b4b4d 100644 --- a/db/migrate/20161205032930_rename_serverspec_results_to_servertest_results.rb +++ b/db/migrate/20161205032930_rename_serverspec_results_to_servertest_results.rb @@ -1,5 +1,6 @@ class RenameServerspecResultsToServertestResults < ActiveRecord::Migration def change rename_table :serverspec_results, :servertest_results + add_reference :resources, :resource_id, index: true end end diff --git a/db/migrate/20161206014625_rename_resource_serverspecs_table_and_serverspec_id_column.rb b/db/migrate/20161206014625_rename_resource_serverspecs_table_and_serverspec_id_column.rb index 36c2f1888..d3ba09507 100644 --- a/db/migrate/20161206014625_rename_resource_serverspecs_table_and_serverspec_id_column.rb +++ b/db/migrate/20161206014625_rename_resource_serverspecs_table_and_serverspec_id_column.rb @@ -2,5 +2,9 @@ class RenameResourceServerspecsTableAndServerspecIdColumn < ActiveRecord::Migrat def change rename_column :resource_serverspecs, :serverspec_id, :servertest_id rename_table :resource_serverspecs, :resource_servertests + + + add_reference :resources, :resource_id, index: true + add_index :servertests, :servertest_id end end diff --git a/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb b/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb index ddb2c610e..f4131a85b 100644 --- a/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb +++ b/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb @@ -2,5 +2,8 @@ class RenameServersoecResultDetailsTableAndServerspecIdColumn < ActiveRecord::Mi def change rename_column :serverspec_result_details, :serverspec_id, :servertest_id rename_table :serverspec_result_details, :servertest_result_details + + add_reference :servertests, :servertest_id, index: true + add_reference :servertest_results, :servertest_result_id, index: true end end diff --git a/db/migrate/20161206020140_rename_dish_serverspec_table_and_serverspec_id_column.rb b/db/migrate/20161206020140_rename_dish_serverspec_table_and_serverspec_id_column.rb index 6e006ddcf..b87dff5ae 100644 --- a/db/migrate/20161206020140_rename_dish_serverspec_table_and_serverspec_id_column.rb +++ b/db/migrate/20161206020140_rename_dish_serverspec_table_and_serverspec_id_column.rb @@ -2,5 +2,7 @@ class RenameDishServerspecTableAndServerspecIdColumn < ActiveRecord::Migration def change rename_column :dish_serverspecs, :serverspec_id, :servertest_id rename_table :dish_serverspecs, :dish_servertests + add_reference :servertests, :servertest_id, index: true + add_reference :dishes, :dish_id, index: true end end diff --git a/frontend/src/models/ec2_instance.ts b/frontend/src/models/ec2_instance.ts index 931f39893..0fe2ccfb9 100644 --- a/frontend/src/models/ec2_instance.ts +++ b/frontend/src/models/ec2_instance.ts @@ -20,7 +20,7 @@ export default class EC2Instance extends ModelBase { static ajax_node = new AjaxSet.Resources('nodes'); static ajax_ec2 = new AjaxSet.Resources('ec2_instances'); - static ajax_serverspec = new AjaxSet.Resources('serverspecs'); + static ajax_servertest = new AjaxSet.Resources('servertests'); static ajax_elb = new AjaxSet.Resources('elb'); @@ -214,7 +214,7 @@ export default class EC2Instance extends ModelBase { select_serverspec(): JQueryPromise { const dfd = $.Deferred(); - (EC2Instance.ajax_serverspec).select({ + (EC2Instance.ajax_servertest).select({ physical_id: this.physical_id, infra_id: this.infra.id, }).done((data: any) => { @@ -233,7 +233,7 @@ export default class EC2Instance extends ModelBase { results_serverspec(): JQueryPromise { const dfd = $.Deferred(); - (EC2Instance.ajax_serverspec).results({ + (EC2Instance.ajax_servertest).results({ physical_id: this.physical_id, infra_id: this.infra.id, }).done((data: any) => { @@ -255,7 +255,7 @@ export default class EC2Instance extends ModelBase { } return this.WrapAndResolveReject(() => - (EC2Instance.ajax_serverspec).run({ + (EC2Instance.ajax_servertest).run({ physical_id: this.physical_id, infra_id: this.infra.id, serverspec_ids: ids, @@ -265,7 +265,7 @@ export default class EC2Instance extends ModelBase { schedule_serverspec(schedule: any): JQueryPromise { return this.WrapAndResolveReject(() => - (EC2Instance.ajax_serverspec).schedule({ + (EC2Instance.ajax_servertest).schedule({ physical_id: this.physical_id, infra_id: this.infra.id, schedule: schedule, @@ -488,10 +488,10 @@ EC2Instance.ajax_ec2.add_member('detach_volume', 'POST'); EC2Instance.ajax_ec2.add_member('available_resources', 'GET'); EC2Instance.ajax_ec2.add_collection('create_volume', 'POST'); -EC2Instance.ajax_serverspec.add_collection('select', 'GET'); -EC2Instance.ajax_serverspec.add_collection('results', 'GET'); -EC2Instance.ajax_serverspec.add_collection("run", "POST"); -EC2Instance.ajax_serverspec.add_collection('schedule', 'POST'); +EC2Instance.ajax_servertest.add_collection('select', 'GET'); +EC2Instance.ajax_servertest.add_collection('results', 'GET'); +EC2Instance.ajax_servertest.add_collection("run", "POST"); +EC2Instance.ajax_servertest.add_collection('schedule', 'POST'); EC2Instance.ajax_elb.add_collection('create_listener', 'POST'); EC2Instance.ajax_elb.add_collection('delete_listener', 'POST'); diff --git a/spec/factories/serverspec_schedules.rb b/spec/factories/serverspec_schedules.rb deleted file mode 100644 index 9a3b983bd..000000000 --- a/spec/factories/serverspec_schedules.rb +++ /dev/null @@ -1,20 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -# Read about factories at https://github.com/thoughtbot/factory_girl - -FactoryGirl.define do - factory :serverspec_schedule do - sequence(:physical_id) { |n| "i-123#{n}abc" } - enabled true - frequency 'weekly' - day_of_week ServerspecSchedule::day_of_weeks.keys.sample - time { rand(0..23) } - resource - end -end From e75ec9544ca739234ebc92035ecd2be07d92fb62 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Thu, 8 Dec 2016 17:59:53 +0900 Subject: [PATCH 037/133] Renamed resource servertest and servertest_schedule models --- app/models/resource_servertest.rb | 12 ++++++++++++ app/models/servertest_schedule.rb | 24 ++++++++++++++++++++++++ spec/factories/servertest_schedules.rb | 20 ++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 app/models/resource_servertest.rb create mode 100644 app/models/servertest_schedule.rb create mode 100644 spec/factories/servertest_schedules.rb diff --git a/app/models/resource_servertest.rb b/app/models/resource_servertest.rb new file mode 100644 index 000000000..0188783dc --- /dev/null +++ b/app/models/resource_servertest.rb @@ -0,0 +1,12 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +class ResourceServertest < ActiveRecord::Base + belongs_to :resource, dependent: :destroy + belongs_to :servertest, dependent: :destroy +end diff --git a/app/models/servertest_schedule.rb b/app/models/servertest_schedule.rb new file mode 100644 index 000000000..da45a038d --- /dev/null +++ b/app/models/servertest_schedule.rb @@ -0,0 +1,24 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +class ServertestSchedule < Schedule + belongs_to :resource, foreign_key: 'physical_id', primary_key: 'physical_id' + + before_update :delete_enqueued_jobs + after_destroy :delete_enqueued_jobs + + JOB_CLASS_NAME = PeriodicServerspecJob.to_s.freeze + + def delete_enqueued_jobs + jobs = Sidekiq::ScheduledSet.new.select { |job| + args = job.args[0] + args['job_class'] == JOB_CLASS_NAME && args['arguments'][0] == self.physical_id + } + jobs.each(&:delete) + end +end diff --git a/spec/factories/servertest_schedules.rb b/spec/factories/servertest_schedules.rb new file mode 100644 index 000000000..a37a5c61f --- /dev/null +++ b/spec/factories/servertest_schedules.rb @@ -0,0 +1,20 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +# Read about factories at https://github.com/thoughtbot/factory_girl + +FactoryGirl.define do + factory :servertest_schedule do + sequence(:physical_id) { |n| "i-123#{n}abc" } + enabled true + frequency 'weekly' + day_of_week ServertestSchedule::day_of_weeks.keys.sample + time { rand(0..23) } + resource + end +end From 50aded12bfbc7124cc65a1799ed6d55865fed798 Mon Sep 17 00:00:00 2001 From: candy Date: Thu, 8 Dec 2016 18:25:17 +0900 Subject: [PATCH 038/133] (en|de)crypt correctly even when secrets is updated --- app/models/concerns/cryptize.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/models/concerns/cryptize.rb b/app/models/concerns/cryptize.rb index 614640141..b34ecfb04 100644 --- a/app/models/concerns/cryptize.rb +++ b/app/models/concerns/cryptize.rb @@ -10,15 +10,16 @@ module Concerns::Cryptize # @param [Symbol] name is an attributes name. def cryptize(name) - c = crypter + # XXX: secrets を変更したときに正しく (en|de)crypt できる? + crypter = method(:crypter) define_method(:"#{name}=") do |v| - val = v.nil? ? v : c.encrypt_and_sign(v) + val = v.nil? ? v : crypter.call.encrypt_and_sign(v) self[name] = val end define_method(name) do v = self[name] - v.nil? ? v : c.decrypt_and_verify(v) + v.nil? ? v : crypter.call.decrypt_and_verify(v) end end From ba01474165ed4c8502ac8dae4c0d00674976c48a Mon Sep 17 00:00:00 2001 From: candy Date: Fri, 9 Dec 2016 17:54:15 +0900 Subject: [PATCH 039/133] Display custom error page on bad gateway --- doc/installation/en/skyhopper.md | 11 ++++- doc/installation/skyhopper.md | 11 ++++- public/502.html | 74 ++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 public/502.html diff --git a/doc/installation/en/skyhopper.md b/doc/installation/en/skyhopper.md index f034d558d..f73bf186e 100644 --- a/doc/installation/en/skyhopper.md +++ b/doc/installation/en/skyhopper.md @@ -90,12 +90,15 @@ EOF ```sh $ sudo tee /etc/nginx/conf.d/skyhopper.conf </dev/null server { + # your skyhopper installation is located + set \$skyhopper_root "/home/ec2-user/skyhopper"; + listen 80; server_name skyhopper.local; #Setting the environment ### production only from here ### location ~ ^/(assets|fonts) { - root /home/ec2-user/skyhopper/public; # your skyhopper installation is located + root \$skyhopper_root/public; } ### production only to here ### @@ -112,6 +115,12 @@ server { proxy_set_header Host \$http_host; proxy_pass http://127.0.0.1:3210; } + + location /502.html { + root \$skyhopper_root/public; + try_files \$uri 502.html; + } + error_page 502 /502.html; } EOF ``` diff --git a/doc/installation/skyhopper.md b/doc/installation/skyhopper.md index 1e5948202..4a1b3ebb3 100644 --- a/doc/installation/skyhopper.md +++ b/doc/installation/skyhopper.md @@ -91,12 +91,15 @@ EOF ```sh $ sudo tee /etc/nginx/conf.d/skyhopper.conf </dev/null server { + # もしskyhopperをcloneした場所が異なる場合修正 + set \$skyhopper_root "/home/ec2-user/skyhopper"; + listen 80; server_name skyhopper.local; #環境に合わせて設定 ### ここから production で動かす場合のみ ### location ~ ^/(assets|fonts) { - root /home/ec2-user/skyhopper/public; # もしskyhopperをcloneした場所が異なる場合修正 + root \$skyhopper_root/public; } ### ここまで production で動かす場合のみ ### @@ -113,6 +116,12 @@ server { proxy_set_header Host \$http_host; proxy_pass http://127.0.0.1:3210; } + + location /502.html { + root \$skyhopper_root/public; + try_files \$uri 502.html; + } + error_page 502 /502.html; } EOF ``` diff --git a/public/502.html b/public/502.html new file mode 100644 index 000000000..d59530b5d --- /dev/null +++ b/public/502.html @@ -0,0 +1,74 @@ + + + + + SkyHopper is down + + + + + + +
    + +
    +

    SkyHopper is down

    +
    + +
    +
    +

    + SkyHopper の起動には少し時間がかかります。
    + 起動時にエラーが表示されてバグかな?と思った場合は少し待ってみてください。
    + また、状況が改善されない場合には + https://skyhopper.org で有益な情報が得られるかもしれません。 +

    +
    +
    + +
    + + + From d89529c09cda274084b3083f18f2ca30cbcb2cf7 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Thu, 15 Dec 2016 15:08:50 +0900 Subject: [PATCH 040/133] - Fixed routes for running serverspecs to servertest - Fixed model relations and remove not working indexes and references - try to fix backend for serverspec runner and jobs and results saving --- .../infrastructures/ec2-tabpane.js | 2 +- app/controllers/servertests_controller.rb | 16 +++++----- .../{serverspec_job.rb => servertest_job.rb} | 32 +++++++++++-------- app/models/node.rb | 12 +++---- app/models/servertest.rb | 2 +- app/policies/servertest_policy.rb | 2 +- app/views/vue/_ec2_tabpane.html.erb | 2 +- config/routes.rb | 2 +- ...32726_rename_serverspecs_to_servertests.rb | 1 - ...erverspec_results_to_servertest_results.rb | 1 - ...verspecs_table_and_serverspec_id_column.rb | 4 --- ..._details_table_and_serverspec_id_column.rb | 3 -- ...rverspec_table_and_serverspec_id_column.rb | 2 -- frontend/src/models/ec2_instance.ts | 6 ++-- 14 files changed, 40 insertions(+), 47 deletions(-) rename app/jobs/{serverspec_job.rb => servertest_job.rb} (72%) diff --git a/app/assets/javascripts/infrastructures/ec2-tabpane.js b/app/assets/javascripts/infrastructures/ec2-tabpane.js index 550b97492..4aa23a5fd 100644 --- a/app/assets/javascripts/infrastructures/ec2-tabpane.js +++ b/app/assets/javascripts/infrastructures/ec2-tabpane.js @@ -237,7 +237,7 @@ module.exports = Vue.extend({ this.$parent.tabpaneID = 'edit_attr'; this._loading(); }, - select_serverspec: function () { + select_servertest: function () { this.$parent.tabpaneID = 'serverspec'; this._loading(); }, diff --git a/app/controllers/servertests_controller.rb b/app/controllers/servertests_controller.rb index ef57e55aa..c30091ce6 100644 --- a/app/controllers/servertests_controller.rb +++ b/app/controllers/servertests_controller.rb @@ -126,20 +126,20 @@ def results # TODO: refactor - # POST /serverspecs/run - def run + # POST /serverspecs/run_serverspec + def run_serverspec physical_id = params.require(:physical_id) infra_id = params.require(:infra_id) - serverspec_ids = params.require(:serverspec_ids) + servertest_ids = params.require(:servertest_ids) resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) - if selected_auto_generated = serverspec_ids.include?('-1') - serverspec_ids.delete('-1') + if selected_auto_generated = servertest_ids.include?('-1') + servertest_ids.delete('-1') end begin - resp = ServerspecJob.perform_now( + resp = ServertestJob.perform_now( physical_id, infra_id, current_user.id, - serverspec_ids: serverspec_ids, auto_generated: selected_auto_generated + servertest_ids: servertest_ids, auto_generated: selected_auto_generated ) rescue => ex # serverspec が正常に実行されなかったとき @@ -159,7 +159,7 @@ def run resource_id: resource.id, status: resp[:status_text], message: resp[:message], - serverspec_ids: serverspec_ids + servertest_ids: servertest_ids ) render text: render_msg, status: 200 and return end diff --git a/app/jobs/serverspec_job.rb b/app/jobs/servertest_job.rb similarity index 72% rename from app/jobs/serverspec_job.rb rename to app/jobs/servertest_job.rb index 2d2dd3667..c017d4b9f 100644 --- a/app/jobs/serverspec_job.rb +++ b/app/jobs/servertest_job.rb @@ -6,7 +6,7 @@ # http://opensource.org/licenses/mit-license.php # -class ServerspecJob < ActiveJob::Base +class ServertestJob < ActiveJob::Base queue_as :default # Serverspec を実行し、結果をインフラログに書き出す。 @@ -14,26 +14,30 @@ class ServerspecJob < ActiveJob::Base # @param [String] physical_id ID of EC2 Instance # @param [Integer] infra_id # @param [Integer] user_id このユーザーで Serverspec が実行される - # @param [Array] serverspec_ids 指定されていなければ、Resource に紐付いた Serverspec を実行する。 + # @param [Array] servertest_ids 指定されていなければ、Resource に紐付いた Serverspec を実行する。 # 指定されていれば、指定した Serverspec を実行する。 # @param [Boolean] auto_generated - def perform(physical_id, infra_id, user_id, serverspec_ids: nil, auto_generated: false) + def perform(physical_id, infra_id, user_id, servertest_ids: nil, auto_generated: false, category: nil) node = Node.new(physical_id) - unless serverspec_ids + unless servertest_ids infra = Infrastructure.find(infra_id) resource = infra.resource(physical_id) - serverspec_ids = resource.all_serverspec_ids + servertest_ids = resource.all_serverspec_ids end @ws = WSConnector.new('notifications', User.find(user_id).ws_key) - infra_logger_serverspec_start(physical_id, infra_id, user_id, auto_generated, serverspec_ids) + infra_logger_serverspec_start(physical_id, infra_id, user_id, auto_generated, servertest_ids) begin - resp = node.run_serverspec(infra_id, serverspec_ids, auto_generated) + resp = if category.nil? + node.run_serverspec(infra_id, servertest_ids, auto_generated) + else + node.run_awsspec(infra_id, servertest_ids, auto_generated) + end rescue => ex log = InfrastructureLog.create( infrastructure_id: infra_id, user_id: user_id, status: false, - details: "serverspec for #{physical_id} is failed. results: \n#{ex.message}" + details: "servertest for #{physical_id} is failed. results: \n#{ex.message}" ) @ws.push_as_json({message: log.details, status: log.status, timestamp: Time.zone.now.to_s}) raise ex @@ -41,21 +45,21 @@ def perform(physical_id, infra_id, user_id, serverspec_ids: nil, auto_generated: case resp[:status_text] when 'success' - log_msg = "serverspec for #{physical_id} is successfully finished." + log_msg = "servertest for #{physical_id} is successfully finished." when 'pending' - log_msg = "serverspec for #{physical_id} is successfully finished. but have pending specs: \n#{resp[:message]}" + log_msg = "servertest for #{physical_id} is successfully finished. but have pending specs: \n#{resp[:message]}" when 'failed' - log_msg = "serverspec for #{physical_id} is failed. failure specs: \n#{resp[:message]}" + log_msg = "servertest for #{physical_id} is failed. failure specs: \n#{resp[:message]}" end log = InfrastructureLog.create(infrastructure_id: infra_id, user_id: user_id, details: log_msg, status: resp[:status]) @ws.push_as_json({message: log.details, status: log.status, timestamp: Time.zone.now.to_s}) - Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id).serverspec_ids = serverspec_ids + Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id).servertest_ids = servertest_ids return resp end - def infra_logger_serverspec_start(physical_id, infra_id, user_id, auto_generated, serverspec_ids) - selected_serverspecs = Serverspec.where(id: serverspec_ids) + def infra_logger_serverspec_start(physical_id, infra_id, user_id, auto_generated, servertest_ids) + selected_serverspecs = Servertest.where(id: servertest_ids, category: 1) serverspec_names = [] serverspec_names << 'auto_generated' if auto_generated diff --git a/app/models/node.rb b/app/models/node.rb index d84b3b032..164afa3b4 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -150,13 +150,13 @@ def have_roles?(roles) end # serverspec_ids => ServerspecのidのArray - def run_serverspec(infra_id, serverspec_ids, selected_auto_generated) + def run_serverspec(infra_id, servertest_ids, selected_auto_generated) # get params infra = Infrastructure.find(infra_id) ec2key = infra.ec2_private_key ec2key.output_temp(prefix: @name) - raise ServerspecError, 'specs is empty' if serverspec_ids.empty? and ! selected_auto_generated + raise ServerspecError, 'specs is empty' if servertest_ids.empty? and ! selected_auto_generated fqdn = infra.instance(@name).fqdn @@ -164,8 +164,8 @@ def run_serverspec(infra_id, serverspec_ids, selected_auto_generated) local_path = scp_specs(ec2key.path_temp, fqdn) end - run_spec_list_path = serverspec_ids.map do |spec| - ::Serverspec.to_file(spec) + run_spec_list_path = servertest_ids.map do |spec| + ::Servertest.to_file(spec) end ruby_cmd = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name']) @@ -213,10 +213,10 @@ def run_serverspec(infra_id, serverspec_ids, selected_auto_generated) result[:short_msg] = result[:examples].select{|x| x[:status] == 'failed'}.map{|x| x[:full_description]}.join("\n") end - Resource.find_by(physical_id: @name).status.serverspec.update(value: result[:status_text]) + Resource.find_by(physical_id: @name).status.servertest.update(value: result[:status_text]) return result rescue => ex - Resource.find_by(physical_id: @name).status.serverspec.failed! + Resource.find_by(physical_id: @name).status.servertest.failed! raise ex ensure ec2key.close_temp diff --git a/app/models/servertest.rb b/app/models/servertest.rb index ae61fed78..dd043cad7 100644 --- a/app/models/servertest.rb +++ b/app/models/servertest.rb @@ -33,7 +33,7 @@ def for_infra(infrastructure_id) end def for_infra_serverspec(infrastructure_id) - where(infrastructure_id: [nil, infrastructure_id], category: :serverspec).to_a + where(infrastructure_id: [nil, infrastructure_id], category: 1).to_a end def global diff --git a/app/policies/servertest_policy.rb b/app/policies/servertest_policy.rb index 6e303d881..84ea8c069 100644 --- a/app/policies/servertest_policy.rb +++ b/app/policies/servertest_policy.rb @@ -17,7 +17,7 @@ class ServertestPolicy < ApplicationPolicy end end - %i[new? update? create? edit? destroy? select? results? run? create_for_rds? schedule? generator?].each do |action| + %i[new? update? create? edit? destroy? select? results? run_serverspec? create_for_rds? schedule? generator?].each do |action| define_method(action) do if record.infrastructure user.allow?(record.infrastructure) && user.admin? diff --git a/app/views/vue/_ec2_tabpane.html.erb b/app/views/vue/_ec2_tabpane.html.erb index cfaa77846..1917db522 100644 --- a/app/views/vue/_ec2_tabpane.html.erb +++ b/app/views/vue/_ec2_tabpane.html.erb @@ -324,7 +324,7 @@
    diff --git a/config/routes.rb b/config/routes.rb index 9b55e86a3..cfc96bfa0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -110,7 +110,7 @@ collection do get 'select' get 'results' - post 'run' + post 'run_serverspec' put 'create_for_rds' post 'schedule' get 'generator' diff --git a/db/migrate/20161205032726_rename_serverspecs_to_servertests.rb b/db/migrate/20161205032726_rename_serverspecs_to_servertests.rb index 9e6edf8ce..51d617556 100644 --- a/db/migrate/20161205032726_rename_serverspecs_to_servertests.rb +++ b/db/migrate/20161205032726_rename_serverspecs_to_servertests.rb @@ -1,6 +1,5 @@ class RenameServerspecsToServertests < ActiveRecord::Migration def change rename_table :serverspecs, :servertests - add_reference :infrastructures, :infrastructure_id, index: true end end diff --git a/db/migrate/20161205032930_rename_serverspec_results_to_servertest_results.rb b/db/migrate/20161205032930_rename_serverspec_results_to_servertest_results.rb index 6256b4b4d..a5d97dab0 100644 --- a/db/migrate/20161205032930_rename_serverspec_results_to_servertest_results.rb +++ b/db/migrate/20161205032930_rename_serverspec_results_to_servertest_results.rb @@ -1,6 +1,5 @@ class RenameServerspecResultsToServertestResults < ActiveRecord::Migration def change rename_table :serverspec_results, :servertest_results - add_reference :resources, :resource_id, index: true end end diff --git a/db/migrate/20161206014625_rename_resource_serverspecs_table_and_serverspec_id_column.rb b/db/migrate/20161206014625_rename_resource_serverspecs_table_and_serverspec_id_column.rb index d3ba09507..36c2f1888 100644 --- a/db/migrate/20161206014625_rename_resource_serverspecs_table_and_serverspec_id_column.rb +++ b/db/migrate/20161206014625_rename_resource_serverspecs_table_and_serverspec_id_column.rb @@ -2,9 +2,5 @@ class RenameResourceServerspecsTableAndServerspecIdColumn < ActiveRecord::Migrat def change rename_column :resource_serverspecs, :serverspec_id, :servertest_id rename_table :resource_serverspecs, :resource_servertests - - - add_reference :resources, :resource_id, index: true - add_index :servertests, :servertest_id end end diff --git a/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb b/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb index f4131a85b..ddb2c610e 100644 --- a/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb +++ b/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb @@ -2,8 +2,5 @@ class RenameServersoecResultDetailsTableAndServerspecIdColumn < ActiveRecord::Mi def change rename_column :serverspec_result_details, :serverspec_id, :servertest_id rename_table :serverspec_result_details, :servertest_result_details - - add_reference :servertests, :servertest_id, index: true - add_reference :servertest_results, :servertest_result_id, index: true end end diff --git a/db/migrate/20161206020140_rename_dish_serverspec_table_and_serverspec_id_column.rb b/db/migrate/20161206020140_rename_dish_serverspec_table_and_serverspec_id_column.rb index b87dff5ae..6e006ddcf 100644 --- a/db/migrate/20161206020140_rename_dish_serverspec_table_and_serverspec_id_column.rb +++ b/db/migrate/20161206020140_rename_dish_serverspec_table_and_serverspec_id_column.rb @@ -2,7 +2,5 @@ class RenameDishServerspecTableAndServerspecIdColumn < ActiveRecord::Migration def change rename_column :dish_serverspecs, :serverspec_id, :servertest_id rename_table :dish_serverspecs, :dish_servertests - add_reference :servertests, :servertest_id, index: true - add_reference :dishes, :dish_id, index: true end end diff --git a/frontend/src/models/ec2_instance.ts b/frontend/src/models/ec2_instance.ts index 0fe2ccfb9..221a934eb 100644 --- a/frontend/src/models/ec2_instance.ts +++ b/frontend/src/models/ec2_instance.ts @@ -255,10 +255,10 @@ export default class EC2Instance extends ModelBase { } return this.WrapAndResolveReject(() => - (EC2Instance.ajax_servertest).run({ + (EC2Instance.ajax_servertest).run_serverspec({ physical_id: this.physical_id, infra_id: this.infra.id, - serverspec_ids: ids, + servertest_ids: ids, }) ); } @@ -490,7 +490,7 @@ EC2Instance.ajax_ec2.add_collection('create_volume', 'POST'); EC2Instance.ajax_servertest.add_collection('select', 'GET'); EC2Instance.ajax_servertest.add_collection('results', 'GET'); -EC2Instance.ajax_servertest.add_collection("run", "POST"); +EC2Instance.ajax_servertest.add_collection("run_serverspec", "POST"); EC2Instance.ajax_servertest.add_collection('schedule', 'POST'); EC2Instance.ajax_elb.add_collection('create_listener', 'POST'); From d7f6a34962e4f4379228407f34d7d663fe56f440 Mon Sep 17 00:00:00 2001 From: deppbot Date: Thu, 15 Dec 2016 16:17:57 +0800 Subject: [PATCH 041/133] Bundle Update on 2016-12-15 --- Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 50ed0f3d9..dd9e40ced 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,13 +47,13 @@ GEM activesupport (>= 3.0.0) rspec awesome_print (1.7.0) - aws-sdk (2.6.34) - aws-sdk-resources (= 2.6.34) - aws-sdk-core (2.6.34) + aws-sdk (2.6.36) + aws-sdk-resources (= 2.6.36) + aws-sdk-core (2.6.36) aws-sigv4 (~> 1.0) jmespath (~> 1.0) - aws-sdk-resources (2.6.34) - aws-sdk-core (= 2.6.34) + aws-sdk-resources (2.6.36) + aws-sdk-core (= 2.6.36) aws-sdk-v1 (1.66.0) json (~> 1.4) nokogiri (>= 1.4.4) @@ -78,7 +78,7 @@ GEM buff-shell_out (0.2.0) buff-ruby_engine (~> 0.1.0) builder (3.2.2) - bullet (5.4.2) + bullet (5.4.3) activesupport (>= 3.0.0) uniform_notifier (~> 1.10.0) celluloid (0.16.0) @@ -86,10 +86,10 @@ GEM celluloid-io (0.16.2) celluloid (>= 0.16.0) nio4r (>= 1.1.0) - chef (12.16.42) + chef (12.17.44) addressable bundler (>= 1.10) - chef-config (= 12.16.42) + chef-config (= 12.17.44) chef-zero (>= 4.8) diff-lcs (~> 1.2, >= 1.2.4) erubis (~> 2.7) @@ -115,7 +115,7 @@ GEM specinfra (~> 2.10) syslog-logger (~> 1.6) uuidtools (~> 2.1.5) - chef-config (12.16.42) + chef-config (12.17.44) addressable fuzzyurl mixlib-config (~> 2.0) @@ -167,7 +167,7 @@ GEM ffi (1.9.14) ffi-yajl (2.3.0) libyajl2 (~> 1.2) - font-awesome-rails (4.7.0.0) + font-awesome-rails (4.7.0.1) railties (>= 3.2, < 5.1) foreman (0.82.0) thor (~> 0.19.1) @@ -199,7 +199,7 @@ GEM highline (1.7.8) hiredis (0.6.1) hitimes (1.2.4) - httpclient (2.8.2.4) + httpclient (2.8.3) i18n (0.7.0) i18n-js (2.1.2) i18n @@ -508,7 +508,7 @@ GEM thread_safe (~> 0.1) uglifier (3.0.4) execjs (>= 0.3.0, < 3) - unicode-display_width (1.1.1) + unicode-display_width (1.1.2) unicorn (5.2.0) kgio (~> 2.6) raindrops (~> 0.7) From 81a94fea93f97f9415048d2c6c97663c5b004fd9 Mon Sep 17 00:00:00 2001 From: candy Date: Fri, 16 Dec 2016 14:30:35 +0900 Subject: [PATCH 042/133] minor change --- app/controllers/databases_controller.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index bca719553..495583c77 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -41,9 +41,7 @@ def import MaintenanceMode.activate(reason: reason) Thread.new do - DatabaseManager.import_from_zip(file.path) - file.close - MaintenanceMode.deactivate + import_zip(file) end redirect_to root_path @@ -53,4 +51,11 @@ def import def app_setting_is_set @app_setting_is_set ||= AppSetting.set? end + + def import_zip(file) + DatabaseManager.import_from_zip(file.path) + ensure + file.close + MaintenanceMode.deactivate + end end From b8f1bce41b8885ca7147a5dcb8ab3a57bd18a2a9 Mon Sep 17 00:00:00 2001 From: candy Date: Fri, 16 Dec 2016 15:06:21 +0900 Subject: [PATCH 043/133] Flash on exception while importing database --- app/controllers/databases_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index 495583c77..1c59119c9 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -54,6 +54,8 @@ def app_setting_is_set def import_zip(file) DatabaseManager.import_from_zip(file.path) + rescue => ex + flash[:danger] = "#{ex.inspect}\n#{ex.backtrace.join}" ensure file.close MaintenanceMode.deactivate From 5f4eeac2b93a62503b116f81eb93e886b6ed58bc Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Mon, 26 Dec 2016 15:32:07 +0900 Subject: [PATCH 044/133] Add english message for error 502 --- public/502.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/public/502.html b/public/502.html index d59530b5d..1a2bc36ac 100644 --- a/public/502.html +++ b/public/502.html @@ -60,11 +60,17 @@

    SkyHopper is down

    - SkyHopper の起動には少し時間がかかります。
    + SkyHopper
    起動時にエラーが表示されてバグかな?と思った場合は少し待ってみてください。
    また、状況が改善されない場合には https://skyhopper.org で有益な情報が得られるかもしれません。

    +

    + The skyhopper server encountered a temporary error and could not process your request
    + Please try again in a few minutes.
    + If the situation is still occurs, Please check the documentation + https://skyhopper.org/en for more imformation. +

    From 1434ffe41ad9d56ac0455a9b012d5af9097fa810 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Mon, 26 Dec 2016 15:33:44 +0900 Subject: [PATCH 045/133] minor change --- public/502.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/502.html b/public/502.html index 1a2bc36ac..42584f67e 100644 --- a/public/502.html +++ b/public/502.html @@ -60,7 +60,7 @@

    SkyHopper is down

    - SkyHopper
    + SkyHopper の起動には少し時間がかかります。
    起動時にエラーが表示されてバグかな?と思った場合は少し待ってみてください。
    また、状況が改善されない場合には https://skyhopper.org で有益な情報が得られるかもしれません。 From 6f1d21f389c065219ab98c1c3d1cfc8df24b02bb Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Mon, 26 Dec 2016 15:32:07 +0900 Subject: [PATCH 046/133] Add english message for error 502 minor change --- public/502.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/502.html b/public/502.html index d59530b5d..42584f67e 100644 --- a/public/502.html +++ b/public/502.html @@ -65,6 +65,12 @@

    SkyHopper is down

    また、状況が改善されない場合には https://skyhopper.org で有益な情報が得られるかもしれません。

    +

    + The skyhopper server encountered a temporary error and could not process your request
    + Please try again in a few minutes.
    + If the situation is still occurs, Please check the documentation + https://skyhopper.org/en for more imformation. +

    From db00cf8d68ec9ee387dc1a9bb68c35a8e8c45e4f Mon Sep 17 00:00:00 2001 From: deppbot Date: Mon, 26 Dec 2016 15:13:34 +0800 Subject: [PATCH 047/133] Bundle Update on 2016-12-26 --- Gemfile.lock | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index dd9e40ced..9ac14f4a6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -47,13 +47,13 @@ GEM activesupport (>= 3.0.0) rspec awesome_print (1.7.0) - aws-sdk (2.6.36) - aws-sdk-resources (= 2.6.36) - aws-sdk-core (2.6.36) + aws-sdk (2.6.42) + aws-sdk-resources (= 2.6.42) + aws-sdk-core (2.6.42) aws-sigv4 (~> 1.0) jmespath (~> 1.0) - aws-sdk-resources (2.6.36) - aws-sdk-core (= 2.6.36) + aws-sdk-resources (2.6.42) + aws-sdk-core (= 2.6.42) aws-sdk-v1 (1.66.0) json (~> 1.4) nokogiri (>= 1.4.4) @@ -134,8 +134,8 @@ GEM coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.11.1) - concurrent-ruby (1.0.2) + coffee-script-source (1.12.2) + concurrent-ruby (1.0.3) connection_pool (2.2.1) coveralls (0.8.17) json (>= 1.8, < 3) @@ -157,10 +157,10 @@ GEM docile (1.1.5) erubis (2.7.0) execjs (2.7.0) - factory_girl (4.7.0) + factory_girl (4.8.0) activesupport (>= 3.0.0) - factory_girl_rails (4.7.0) - factory_girl (~> 4.7.0) + factory_girl_rails (4.8.0) + factory_girl (~> 4.8.0) railties (>= 3.0.0) faraday (0.9.2) multipart-post (>= 1.2, < 3) @@ -213,8 +213,8 @@ GEM kaminari (0.17.0) actionpack (>= 3.0.0) activesupport (>= 3.0.0) - kgio (2.10.0) - knife-windows (1.7.1) + kgio (2.11.0) + knife-windows (1.8.0) winrm (~> 2.1) winrm-elevated (~> 1.0) libv8 (3.16.14.17) @@ -431,7 +431,7 @@ GEM rubyzip (1.2.0) rufus-scheduler (3.3.1) tzinfo - sass (3.4.22) + sass (3.4.23) sass-rails (5.0.6) railties (>= 4.0.0, < 6) sass (~> 3.1) @@ -469,7 +469,7 @@ GEM tilt (>= 1.3, < 3) sky_zabbix (2.2.0.1.2) slop (3.6.0) - specinfra (2.66.2) + specinfra (2.66.3) net-scp net-ssh (>= 2.7, < 4.0) net-telnet @@ -481,7 +481,7 @@ GEM spring-commands-sidekiq (1.0.0) spring (>= 0.9.1) sprint (1.1.0) - sprockets (3.7.0) + sprockets (3.7.1) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.2.0) @@ -522,7 +522,7 @@ GEM hashie (>= 2.0.2, < 4.0.0) warden (1.2.6) rack (>= 1.0) - winrm (2.1.0) + winrm (2.1.1) builder (>= 2.1.2) erubis (~> 2.7) gssapi (~> 1.2) From 1837878edc7fb3ddc9429e47660ed4d390712c33 Mon Sep 17 00:00:00 2001 From: candy Date: Mon, 26 Dec 2016 17:35:49 +0900 Subject: [PATCH 048/133] Flash error message surely when database import failed --- app/controllers/databases_controller.rb | 2 +- app/helpers/application_helper.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/databases_controller.rb b/app/controllers/databases_controller.rb index 1c59119c9..0666ab92d 100644 --- a/app/controllers/databases_controller.rb +++ b/app/controllers/databases_controller.rb @@ -55,7 +55,7 @@ def app_setting_is_set def import_zip(file) DatabaseManager.import_from_zip(file.path) rescue => ex - flash[:danger] = "#{ex.inspect}\n#{ex.backtrace.join}" + Rails.cache.write(:err, "#{ex.inspect}\n#{ex.backtrace.join}") ensure file.close MaintenanceMode.deactivate diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index fd9a29fee..a9f5e6429 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -29,6 +29,10 @@ def gravatar(email) def bootstrap_flash(options = {}) flash_messages = [] + if Rails.cache.exist?(:err) + flash[:danger] = Rails.cache.read(:err) + Rails.cache.delete(:err) + end flash.each do |type, message| # Skip empty messages, e.g. for devise messages set to nothing in a locale file. next if message.blank? From 6244b2f069d2d5f11659c2facfb1e16f0872f16d Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 28 Dec 2016 10:42:54 +0900 Subject: [PATCH 049/133] - Refactored listen.js for servertest filters - configured sublime text development environment - Added category filtering on servertest results details as log --- .../serverspec-results-tabpane.js | 12 +- app/assets/javascripts/modules/listen.js | 257 +++++++++--------- app/assets/javascripts/modules/wrap.js | 6 +- app/assets/javascripts/servertests.js | 4 +- app/controllers/servertests_controller.rb | 8 +- app/models/node.rb | 4 +- app/models/resource.rb | 2 +- app/views/infrastructures/_show.html.erb | 2 +- app/views/servertests/results.jbuilder | 4 - ..._details_table_and_serverspec_id_column.rb | 1 + db/schema.rb | 2 +- 11 files changed, 151 insertions(+), 151 deletions(-) delete mode 100644 app/views/servertests/results.jbuilder diff --git a/app/assets/javascripts/infrastructures/serverspec-results-tabpane.js b/app/assets/javascripts/infrastructures/serverspec-results-tabpane.js index 95d0acead..9668d69cb 100644 --- a/app/assets/javascripts/infrastructures/serverspec-results-tabpane.js +++ b/app/assets/javascripts/infrastructures/serverspec-results-tabpane.js @@ -32,7 +32,7 @@ module.exports = Vue.extend({ return { sortKey: '', sortOrders: sortOrders, - index: 'serverspec_results', + index: 'servertest_results', lang: null, pages: 10, pageNumber: 0, @@ -81,21 +81,23 @@ module.exports = Vue.extend({ created: function () { self = this; var self = this; - self.columns = ['serverspec', 'resource', 'message', 'status', 'created_at']; + self.columns = ['servertest', 'resource', 'message', 'status', 'created_at', 'category']; var temp_id = null; var serverspecs = []; self.ec2.results_serverspec().done(function (data) { self.data = data.map(function (item) { + console.log(item) var last_log = (item.created_at ? new Date(item.created_at) : ''); return { - serverspec: item.serverspecs, + servertest: item.servertests, resource: item.resource.physical_id, message: [item.id, item.resource.physical_id, item.message, - item.serverspec_result_details], + item.servertest_result_details], status: item.status, - created_at: last_log.toLocaleString() + created_at: last_log.toLocaleString(), + category: item.servertests, }; }); self.$parent.loading = false; diff --git a/app/assets/javascripts/modules/listen.js b/app/assets/javascripts/modules/listen.js index 8ef321fc1..c738617d2 100644 --- a/app/assets/javascripts/modules/listen.js +++ b/app/assets/javascripts/modules/listen.js @@ -5,151 +5,152 @@ // // http://opensource.org/licenses/mit-license.php // +(function () { + 'use_strict'; -module.exports = function (value, key, index, lang) { - switch (index) { - case 'infrastructures': - return render_infrastructures(value, key, lang); - case 'projects': - return render_projects(value, key, lang); - case 'clients': - return render_clients(value, key, lang); - case 'serverspecs': - return render_serverspecs(value, key, lang); - case 'dishes': - return render_dish(value, key, lang); - case 'cf_templates': - return render_cf_templates(value, key, lang); - case 'user_admin': - return render_user_admin(value, key, lang); - case 'serverspec_results': - return render_serverspecs_results(value, key, lang); - default: - return value; - } -}; - - -function render_infrastructures(value, key, lang){ - if (key === 'status') { - switch (value) { - case 'CREATE_COMPLETE': - return ""+value+""; - case 'DELETE_IN_PROGRESS': - return ""+value+""; - case 'CREATE_IN_PROGRESS': - return ""+value+""; + module.exports = function (value, key, index, lang) { + + switch (index) { + case 'infrastructures': + return render_infrastructures(value, key, lang); + case 'projects': + return render_projects(value, key, lang); + case 'clients': + return render_clients(value, key, lang); + case 'serverspecs': + return render_serverspecs(value, key, lang); + case 'dishes': + return render_dish(value, key, lang); + case 'cf_templates': + return render_cf_templates(value, key, lang); + case 'user_admin': + return render_user_admin(value, key, lang); + case 'servertest_results': + return render_servertests_results(value, key, lang); default: - return " NO_STACK_INFO "; + return value; } - }else if (key === 'stack_name') { - return ''; - }else{ - return value; - } -} + }; -function render_clients(value, key, lang){ - if (key === 'code') { - return value[0]+" "+value[1] +" "+ t ('clients.projects')+""; - }else{ - return value; - } -} -function render_projects(value, key, lang){ - if (key === 'code') { - return value[0]+" "+value[1] +" "+ t ('projects.infras')+""; - }else{ - return value; + function render_infrastructures(value, key, lang){ + if (key === 'status') { + switch (value) { + case 'CREATE_COMPLETE': + return ""+value+""; + case 'DELETE_IN_PROGRESS': + return ""+value+""; + case 'CREATE_IN_PROGRESS': + return ""+value+""; + default: + return " NO_STACK_INFO "; + } + }else if (key === 'stack_name') { + return ''; + }else{ + return value; + } } -} -function render_serverspecs(value, key, lang){ - if (key !== 'serverspec_name') + function render_clients(value, key, lang){ + if (key === 'code') { + return value[0]+" "+value[1] +" "+ t ('clients.projects')+""; + }else{ return value; -} + } + } -function render_cf_templates(value, key, lang){ - if(key !== 'cf_subject') + function render_projects(value, key, lang){ + if (key === 'code') { + return value[0]+" "+value[1] +" "+ t ('projects.infras')+""; + }else{ return value; -} - -function render_dish(value, key, lang){ - if (key === 'status') { - var label = null; - if(value === 'SUCCESS'){ - label = 'label-success'; - }else if (value === 'FAILURE') { - label = 'label-danger'; - }else if (value === 'CREATING' || value === 'BOOTSTRAPPING' || value === 'APPLYING' || value === 'SERVERSPEC') { - label = 'label-info'; - }else { - label = 'label-warning'; - value = 'NOT YET'; } - return ""+value+""; - }else if (key === 'dish_name') { - return ''; - }else{ - return value; } -} -function render_user_admin(value, key, lang){ - if(key === 'role'){ - return value[0]+" "+value[1]; - }else if (key === 'email') { - return value[0]+" "+value[1]+" "+value[2]; - }else { + function render_serverspecs(value, key, lang){ + return (key !== 'serverspec_name') ? value : ''; + } + + function render_cf_templates(value, key, lang){ + return (key !== 'cf_subject') ? value : ''; + } + + function render_dish(value, key, lang){ + if (key === 'status') { + var label = null; + if(value === 'SUCCESS'){ + label = 'label-success'; + }else if (value === 'FAILURE') { + label = 'label-danger'; + }else if (value === 'CREATING' || value === 'BOOTSTRAPPING' || value === 'APPLYING' || value === 'SERVERSPEC') { + label = 'label-info'; + }else { + label = 'label-warning'; + value = 'NOT YET'; + } + return ""+value+""; + }else if (key === 'dish_name') { + return ''; + }else{ return value; } -} + } -function render_serverspecs_results(value, key){ - if(key === 'status'){ - var ret; - switch (value) { - case 'success': - ret = ""+value+""; - break; - case 'failed': - ret = ""+value+""; - break; - case 'pending': - ret = ""+value+""; - break; - } - return ret; - }else if (key === 'serverspec') { - if(value.length > 0){ - var values = []; - $.each(value, function(index, value){ - values.push(" "+value.name); - }); - return values; - }else { - return 'auto generated'; - } - }else if (key === 'message') { - if(value[3].length <= 0){ - return " serverspec for "+value[1]+" is successfully finished. "; - }else{ - var head = "Serverspec for "+value[1]+" ... "; - var body = ''; - if(value[2]){ - body = "
    " + - "" + - "
    " + - "
    "+value[2]+"
    " + - "
    " + - "" + - "
    "; + function render_user_admin(value, key, lang){ + if(key === 'role'){ + return value[0]+" "+value[1]; + }else if (key === 'email') { + return value[0]+" "+value[1]+" "+value[2]; + }else { + return value; } + } + + function render_servertests_results(value, key){ + console.log(key, value); + switch (key) { + case 'status': + if(value == 'success') { + return ""+value+""; + }else if (value == 'failed') { + return ""+value+""; + }else if (value == 'pending') { + return ""+value+""; + }else{ return value; } + + case 'servertest': + return (value.length > 0) ? value.map(function(val){ return val.name; }) : 'auto generated'; + case 'category': + var category = []; + value.forEach(function (argument) { + if (!category.includes(argument.category)) + category.push(argument.category); + }); + + return (value.length > 0) ? category : 'serverspec'; - return head+body; + case 'message': + if(value[3].length <= 0){ + return " serverspec for "+value[1]+" is successfully finished. "; + }else{ + var head = "Serverspec for "+value[1]+" ... "; + var body = ''; + if(value[2]){ + body = "
    " + + "" + + "
    " + + "
    "+value[2]+"
    " + + "
    " + + "" + + "
    "; + } + return head+body; + }break; + default: + return value; } - }else{ - return value; - } } + +})(); + diff --git a/app/assets/javascripts/modules/wrap.js b/app/assets/javascripts/modules/wrap.js index c55152088..4083e8043 100644 --- a/app/assets/javascripts/modules/wrap.js +++ b/app/assets/javascripts/modules/wrap.js @@ -22,8 +22,8 @@ module.exports = function(value, index){ return render_cf_templates(value); case 'user_admin': return render_user_admin(value); - case 'serverspec_results': - return render_serverspecs_results(value); + case 'servertest_results': + return render_servertests_results(value); case 'operation_sched': return render_ops_sched(value); default: @@ -123,7 +123,7 @@ function render_user_admin(value){ } } -function render_serverspecs_results(value){ +function render_servertests_results(value){ switch (value) { case 'serverspec': return t('serverspecs.serverspecs'); diff --git a/app/assets/javascripts/servertests.js b/app/assets/javascripts/servertests.js index 0027cb5aa..b6545f9bc 100644 --- a/app/assets/javascripts/servertests.js +++ b/app/assets/javascripts/servertests.js @@ -14,7 +14,7 @@ var modal = require('modal'); var app; Vue.component('demo-grid', require('demo-grid.js')); -var serverspec_url = queryString.infrastructure_id ? 'infrastructure_id='+queryString.infrastructure_id: ''; +var servertest_url = queryString.infrastructure_id ? 'infrastructure_id='+queryString.infrastructure_id: ''; var servertestIndex = new Vue({ el: '#indexElement', @@ -28,7 +28,7 @@ var servertestIndex = new Vue({ edit_servertest_path: null }, infra_id: queryString.infrastructure_id ? '&infrastructure_id='+queryString.infrastructure_id: '', - url: 'serverspecs?'+serverspec_url, + url: 'servertests?'+servertest_url, is_empty: false, loading: true, }, diff --git a/app/controllers/servertests_controller.rb b/app/controllers/servertests_controller.rb index c30091ce6..e6e4e7dbf 100644 --- a/app/controllers/servertests_controller.rb +++ b/app/controllers/servertests_controller.rb @@ -116,11 +116,11 @@ def results infra_id = params.require(:infra_id) resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) - @serverspec_results = resource.serverspec_results.order("created_at desc") + @serverspec_results = resource.servertest_results.order("created_at desc") respond_to do |format| - format.json { render json: @serverspec_results.as_json(only: [:id, :status, :message, :created_at], - include: [{serverspec_result_details: {only: [:id]}},{serverspecs: {only:[:name]}}, {resource: {only: [:physical_id]}} ]) } + format.json { render json: @serverspec_results.as_json(only: [:id, :status, :message, :created_at, :category], + include: [{servertest_result_details: {only: [:id]}},{servertests: {only: [:name, :category]}}, {resource: {only: [:physical_id]}} ]) } end end @@ -155,7 +155,7 @@ def run_serverspec render_msg = I18n.t('serverspecs.msg.failure', physical_id: physical_id, failure_specs: resp[:short_msg]) end - ServerspecResult.create( + ServertestResult.create( resource_id: resource.id, status: resp[:status_text], message: resp[:message], diff --git a/app/models/node.rb b/app/models/node.rb index 164afa3b4..a00e82a70 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -273,8 +273,8 @@ def scp_specs(sshkey_path, fqdn) d['default']['serverspec-handler']['output_dir'] end - Dir::mkdir(Serverspec::TmpDir) unless Dir::exist?(Serverspec::TmpDir) - local_path = Dir::mktmpdir(nil, Serverspec::TmpDir) + Dir::mkdir(Servertest::TmpDir) unless Dir::exist?(Servertest::TmpDir) + local_path = Dir::mktmpdir(nil, Servertest::TmpDir) Net::SCP.start(fqdn, @user, keys: sshkey_path) do |scp| scp.download!(remote_path, local_path, recursive: true) diff --git a/app/models/resource.rb b/app/models/resource.rb index dd1f0a0c7..114a822b3 100644 --- a/app/models/resource.rb +++ b/app/models/resource.rb @@ -13,7 +13,7 @@ class Resource < ActiveRecord::Base has_many :resource_servertests has_many :servertests, through: :resource_servertests has_many :status, dependent: :delete_all, class_name: 'ResourceStatus' - has_many :serverspec_results + has_many :servertest_results has_many :operation_durations has_one :servertest_schedule, dependent: :destroy, foreign_key: 'physical_id', primary_key: 'physical_id' diff --git a/app/views/infrastructures/_show.html.erb b/app/views/infrastructures/_show.html.erb index 283458b83..4aa14eddf 100644 --- a/app/views/infrastructures/_show.html.erb +++ b/app/views/infrastructures/_show.html.erb @@ -145,7 +145,7 @@ - + diff --git a/app/views/servertests/results.jbuilder b/app/views/servertests/results.jbuilder deleted file mode 100644 index 735a38aa3..000000000 --- a/app/views/servertests/results.jbuilder +++ /dev/null @@ -1,4 +0,0 @@ -json.array!(@serverspec_results) do |log| - json.extract! log, :id, :result_id, :physical_id, :message, :status, :created_at, :name -end -#json.serverspec_results @serverspec_results diff --git a/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb b/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb index ddb2c610e..3ef1ac43c 100644 --- a/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb +++ b/db/migrate/20161206015820_rename_serversoec_result_details_table_and_serverspec_id_column.rb @@ -1,6 +1,7 @@ class RenameServersoecResultDetailsTableAndServerspecIdColumn < ActiveRecord::Migration def change rename_column :serverspec_result_details, :serverspec_id, :servertest_id + rename_column :serverspec_result_details, :serverspec_result_id, :servertest_result_id rename_table :serverspec_result_details, :servertest_result_details end end diff --git a/db/schema.rb b/db/schema.rb index 68377ee1c..dcb9944c6 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -211,7 +211,7 @@ create_table "servertest_result_details", force: :cascade do |t| t.integer "servertest_id", limit: 4 - t.integer "serverspec_result_id", limit: 4 + t.integer "servertest_result_id", limit: 4 t.datetime "created_at", null: false t.datetime "updated_at", null: false end From 7a33facc014bde0f4315becef20fede1fe84cbbe Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 28 Dec 2016 12:49:27 +0900 Subject: [PATCH 050/133] Renamed serverspec results tabpane to servertests --- app/assets/javascripts/infrastructures.js | 2 +- .../serverspec-results-tabpane.js | 109 ------------------ app/assets/javascripts/modules/listen.js | 3 +- app/views/infrastructures/_show.html.erb | 4 +- .../vue/_serverspec_results_tabpane.html.erb | 44 ------- frontend/src/models/ec2_instance.ts | 2 +- 6 files changed, 5 insertions(+), 159 deletions(-) delete mode 100644 app/assets/javascripts/infrastructures/serverspec-results-tabpane.js delete mode 100644 app/views/vue/_serverspec_results_tabpane.html.erb diff --git a/app/assets/javascripts/infrastructures.js b/app/assets/javascripts/infrastructures.js index b10c3b27a..5642b3fac 100644 --- a/app/assets/javascripts/infrastructures.js +++ b/app/assets/javascripts/infrastructures.js @@ -46,7 +46,7 @@ Vue.component('ec2-tabpane', require('infrastructures/ec2-tabpane.js')); Vue.component('edit-runlist-tabpane', require('infrastructures/edit-runlist-tabpane.js')); Vue.component('edit-attr-tabpane', require('infrastructures/edit-attr-tabpane.js')); - Vue.component('serverspec-results-tabpane', require('infrastructures/serverspec-results-tabpane.js')); + Vue.component('servertest-results-tabpane', require('infrastructures/servertest-results-tabpane.js')); Vue.component('serverspec-tabpane', require('infrastructures/serverspec-tabpane.js')); Vue.component('operation-sched-tabpane', require('infrastructures/operation-sched-tabpane.js')); Vue.component('demo-grid', require('demo-grid.js')); diff --git a/app/assets/javascripts/infrastructures/serverspec-results-tabpane.js b/app/assets/javascripts/infrastructures/serverspec-results-tabpane.js deleted file mode 100644 index 9668d69cb..000000000 --- a/app/assets/javascripts/infrastructures/serverspec-results-tabpane.js +++ /dev/null @@ -1,109 +0,0 @@ -var Infrastructure = require('models/infrastructure').default; -var EC2Instance = require('models/ec2_instance').default; - -var wrap = require('modules/wrap'); -var listen = require('modules/listen'); - -var helpers = require('infrastructures/helper.js'); -var alert_danger = helpers.alert_danger; - -module.exports = Vue.extend({ - template: '#serverspec-results-tabpane-template', - replace: true, - - props: { - data: { - type: Array, - required: false, - }, - columns: Array, - filterKey: String, - infra_id: { - type: Number, - required: true, - }, - }, - - data: function () { - var sortOrders = {}; - this.columns.forEach(function (key) { - sortOrders[key] = 1; - }); - return { - sortKey: '', - sortOrders: sortOrders, - index: 'servertest_results', - lang: null, - pages: 10, - pageNumber: 0, - }; - }, - - methods:{ - show_ec2: function () { - this.$parent.show_ec2(this.physical_id); - }, - sortBy: function (key) { - if(key !== 'id') { - this.sortKey = key; - this.sortOrders[key] = this.sortOrders[key] * -1; - } - }, - showPrev: function(){ - if(this.pageNumber === 0) return; - this.pageNumber--; - }, - showNext: function(){ - if(this.isEndPage) return; - this.pageNumber++; - }, - }, - - computed: { - physical_id: function () { return this.$parent.tabpaneGroupID; }, - ec2: function () { return new EC2Instance(new Infrastructure(this.infra_id), this.physical_id); }, - all_spec: function () { return this.globals.concat(this.individuals); }, - - isStartPage: function(){ return (this.pageNumber === 0); }, - isEndPage: function(){ return ((this.pageNumber + 1) * this.pages >= this.data.length); }, - }, - filters:{ - wrap: wrap, - listen: listen, - - paginate: function(list) { - var index = this.pageNumber * this.pages; - return list.slice(index, index + this.pages); - }, - - roundup: function (val) { return (Math.ceil(val));}, - }, - created: function () { - self = this; - var self = this; - self.columns = ['servertest', 'resource', 'message', 'status', 'created_at', 'category']; - var temp_id = null; - var serverspecs = []; - self.ec2.results_serverspec().done(function (data) { - self.data = data.map(function (item) { - console.log(item) - var last_log = (item.created_at ? new Date(item.created_at) : ''); - return { - servertest: item.servertests, - resource: item.resource.physical_id, - message: [item.id, - item.resource.physical_id, - item.message, - item.servertest_result_details], - status: item.status, - created_at: last_log.toLocaleString(), - category: item.servertests, - }; - }); - self.$parent.loading = false; - $("#loading_results").hide(); - var empty = t('serverspecs.msg.empty-results'); - if(self.data.length === 0){ $('#empty_results').show().html(empty);} - }).fail(alert_danger(self.show_ec2)); - }, -}); diff --git a/app/assets/javascripts/modules/listen.js b/app/assets/javascripts/modules/listen.js index c738617d2..f9b56615a 100644 --- a/app/assets/javascripts/modules/listen.js +++ b/app/assets/javascripts/modules/listen.js @@ -108,7 +108,6 @@ } function render_servertests_results(value, key){ - console.log(key, value); switch (key) { case 'status': if(value == 'success') { @@ -134,7 +133,7 @@ if(value[3].length <= 0){ return " serverspec for "+value[1]+" is successfully finished. "; }else{ - var head = "Serverspec for "+value[1]+" ... "; + var head = "Serverspec for "+value[1]+" ... "; var body = ''; if(value[2]){ body = "
    " + diff --git a/app/views/infrastructures/_show.html.erb b/app/views/infrastructures/_show.html.erb index 4aa14eddf..d7e07e807 100644 --- a/app/views/infrastructures/_show.html.erb +++ b/app/views/infrastructures/_show.html.erb @@ -145,7 +145,7 @@ - +
    @@ -176,7 +176,7 @@ - + diff --git a/app/views/vue/_serverspec_results_tabpane.html.erb b/app/views/vue/_serverspec_results_tabpane.html.erb deleted file mode 100644 index 1d3dc4381..000000000 --- a/app/views/vue/_serverspec_results_tabpane.html.erb +++ /dev/null @@ -1,44 +0,0 @@ -
    <%= t 'common.msg.loading' %>
    - -
    -
    - - -
    -
    - - - - - - - - - - - -
    - - -
    - -
    - -
    - -
    -
    - -
    -
    diff --git a/frontend/src/models/ec2_instance.ts b/frontend/src/models/ec2_instance.ts index 221a934eb..f77d1c47b 100644 --- a/frontend/src/models/ec2_instance.ts +++ b/frontend/src/models/ec2_instance.ts @@ -230,7 +230,7 @@ export default class EC2Instance extends ModelBase { return dfd.promise(); } - results_serverspec(): JQueryPromise { + results_servertest(): JQueryPromise { const dfd = $.Deferred(); (EC2Instance.ajax_servertest).results({ From 9ec85613bd8c7c1f2d2ace0c767df2b135133c3c Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 4 Jan 2017 14:57:19 +0900 Subject: [PATCH 051/133] Update locatiozation for servertest on some pages --- app/assets/javascripts/modules/wrap.js | 14 +++++++----- app/views/vue/_ec2_tabpane.html.erb | 6 ++--- config/locales/en.yml | 31 +++++++++++++------------- config/locales/ja.yml | 5 +++-- 4 files changed, 30 insertions(+), 26 deletions(-) diff --git a/app/assets/javascripts/modules/wrap.js b/app/assets/javascripts/modules/wrap.js index 4083e8043..4874325c3 100644 --- a/app/assets/javascripts/modules/wrap.js +++ b/app/assets/javascripts/modules/wrap.js @@ -78,9 +78,11 @@ function render_clients(value){ function render_servertests(value){ switch (value) { case 'description': - return t ('serverspecs.description'); + return t ('servertests.description'); case 'servertest_name': - return t ('serverspecs.name'); + return t ('servertests.name'); + case 'category': + return t ('servertests.category'); default: return value; } @@ -125,16 +127,16 @@ function render_user_admin(value){ function render_servertests_results(value){ switch (value) { - case 'serverspec': - return t('serverspecs.serverspecs'); + case 'servertest': + return t('servertests.servertests'); case 'resource': - return t('serverspecs.generator.resources'); + return t('servertests.generator.resources'); case 'message': return t('cf_templates.details'); case 'status': return t ('infrastructures.status'); case 'created_at': - return t ('serverspecs.created_at'); + return t ('servertests.created_at'); default: return value; } diff --git a/app/views/vue/_ec2_tabpane.html.erb b/app/views/vue/_ec2_tabpane.html.erb index 1917db522..ad5389743 100644 --- a/app/views/vue/_ec2_tabpane.html.erb +++ b/app/views/vue/_ec2_tabpane.html.erb @@ -320,12 +320,12 @@
    diff --git a/config/locales/en.yml b/config/locales/en.yml index 49a49b320..5b650ba44 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -328,35 +328,36 @@ en: delete_dish: 'Are you sure you want to delete this Dish?' - serverspecs: + servertests: name: 'Name' - serverspecs: 'Serverspecs' - serverspec: 'Serverspec' + servertests: 'Servertests' + serverspec: 'Servertest' description: 'Description' value: 'Value' - auto_generated: 'Auto generated Serverspecs' + auto_generated: 'Auto generated Servertests' global: 'Global' individual: 'Infrastructure Individual' - select_serverspec: 'Select Serverspecs' + select_serverspec: 'Select Servertests' created_at: 'at' operation_logs: 'Operation Logs' - run: 'Run Serverspecs' - results: 'Serverspec Results' + run: 'Run Servertests' + results: 'Servertest Results' + category: 'Category' btn: add: 'Add Servertest' - create: 'Create Serverspec' - run: 'Run Serverspecs' - generator: 'Serverspec Generator' + create: 'Create Servertest' + run: 'Run Servertests' + generator: 'Servertest Generator' msg: - created: 'Serverspec was successfully created.' - updated: 'Serverspec was successfully updated.' - deleted: 'Serverspec was successfully deleted' - parseerr: 'Something went wrong with Serverspec Operation.' + created: 'Servertest was successfully created.' + updated: 'Servertest was successfully updated.' + deleted: 'Servertest was successfully deleted' + parseerr: 'Something went wrong with Servertest Operation.' success: 'Serverspec for %{physical_id} is successfully finished.' pending: 'Serverspec for %{physical_id} is successfully finished. Pending specs: %{pending_specs}' failure: 'Serverspec for %{physical_id} has failed. failure specs: %{failure_specs}' generated: 'Serverspec is successfully generated.' - delete_serverspec: 'Are you sure you want to delete this Serverspec?' + delete_serverspec: 'Are you sure you want to delete this Servertest?' empty-results: 'No results found.' auto_generated_enabled_html: 'This Serverspec was created automatically by "serverspec-handler" cookbook.' auto_generated_disabled_html: 'This option is available only when runlist includes "serverspec-handler" cookbook.' diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 41962df6b..87caf4d51 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -326,8 +326,8 @@ ja: empty-list: 'ディッシュのリストが空です' - serverspecs: - name: 'Serverspec 名' + servertests: + name: 'Servertest 名' serverspecs: 'Serverspecs' serverspec: 'Serverspec' description: '詳細' @@ -340,6 +340,7 @@ ja: created_at: 'at' run: 'Serverspec の実行' results: 'Serverspec の結果' + category: 'カテゴリー' btn: add: 'Servertest の追加' create: 'Serverspec の作成' From 9823bea25c743850830fd540d4bc5cc4c94e3acd Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 4 Jan 2017 14:57:54 +0900 Subject: [PATCH 052/133] Added renamed servertest files --- .../servertest-results-tabpane.js | 107 ++++++++++++++++++ .../vue/_servertest_results_tabpane.html.erb | 43 +++++++ 2 files changed, 150 insertions(+) create mode 100644 app/assets/javascripts/infrastructures/servertest-results-tabpane.js create mode 100644 app/views/vue/_servertest_results_tabpane.html.erb diff --git a/app/assets/javascripts/infrastructures/servertest-results-tabpane.js b/app/assets/javascripts/infrastructures/servertest-results-tabpane.js new file mode 100644 index 000000000..0d6f4e41f --- /dev/null +++ b/app/assets/javascripts/infrastructures/servertest-results-tabpane.js @@ -0,0 +1,107 @@ +var Infrastructure = require('models/infrastructure').default; +var EC2Instance = require('models/ec2_instance').default; + +var wrap = require('modules/wrap'); +var listen = require('modules/listen'); + +var helpers = require('infrastructures/helper.js'); +var alert_danger = helpers.alert_danger; + +module.exports = Vue.extend({ + template: '#servertest-results-tabpane-template', + replace: true, + + props: { + data: { + type: Array, + required: false, + }, + columns: Array, + filterKey: String, + infra_id: { + type: Number, + required: true, + }, + }, + + data: function () { + var sortOrders = {}; + this.columns.forEach(function (key) { + sortOrders[key] = 1; + }); + return { + sortKey: '', + sortOrders: sortOrders, + index: 'servertest_results', + lang: null, + pages: 10, + pageNumber: 0, + }; + }, + + methods:{ + show_ec2: function () { + this.$parent.show_ec2(this.physical_id); + }, + sortBy: function (key) { + if(key !== 'id') { + this.sortKey = key; + this.sortOrders[key] = this.sortOrders[key] * -1; + } + }, + showPrev: function(){ + if(this.pageNumber === 0) return; + this.pageNumber--; + }, + showNext: function(){ + if(this.isEndPage) return; + this.pageNumber++; + }, + }, + + computed: { + physical_id: function () { return this.$parent.tabpaneGroupID; }, + ec2: function () { return new EC2Instance(new Infrastructure(this.infra_id), this.physical_id); }, + all_spec: function () { return this.globals.concat(this.individuals); }, + + isStartPage: function(){ return (this.pageNumber === 0); }, + isEndPage: function(){ return ((this.pageNumber + 1) * this.pages >= this.data.length); }, + }, + filters:{ + wrap: wrap, + listen: listen, + + paginate: function(list) { + var index = this.pageNumber * this.pages; + return list.slice(index, index + this.pages); + }, + + roundup: function (val) { return (Math.ceil(val));}, + }, + created: function () { + self = this; + var self = this; + self.columns = ['servertest', 'resource', 'message', 'status', 'created_at', 'category']; + var temp_id = null; + var serverspecs = []; + self.ec2.results_servertest().done(function (data) { + self.data = data.map(function (item) { + console.log(item) + var last_log = (item.created_at ? new Date(item.created_at) : ''); + return { + servertest: item.servertests, + resource: item.resource.physical_id, + message: [item.id, + item.resource.physical_id, + item.message, + item.servertest_result_details], + status: item.status, + created_at: last_log.toLocaleString(), + category: item.servertests, + }; + }); + self.$parent.loading = false; + if(self.data.length === 0){ self.is_empty == true; } + }).fail(alert_danger(self.show_ec2)); + }, +}); diff --git a/app/views/vue/_servertest_results_tabpane.html.erb b/app/views/vue/_servertest_results_tabpane.html.erb new file mode 100644 index 000000000..d92b7df5f --- /dev/null +++ b/app/views/vue/_servertest_results_tabpane.html.erb @@ -0,0 +1,43 @@ + +
    +
    +
    +
    + + + + + + + + + + + +
    + + +
    + +
    <%= t('servertests.msg.empty-results') %>
    + +
    + +
    +
    + +
    +
    From 193b861b73fa3b8b020fc15beffc418d6d9aa05c Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 4 Jan 2017 16:30:19 +0900 Subject: [PATCH 053/133] Renamed specfiles to correspond to servertest specs --- ...61205054856_add_category_to_servertests.rb | 2 +- db/schema.rb | 276 ++++++----- .../serverspecs_controller_spec.rb | 433 ------------------ spec/factories/dish_serverspecs.rb | 14 - spec/jobs/serverspec_job_spec.rb | 104 ----- spec/models/dish_serverspec_spec.rb | 12 - spec/models/resource_serverspec_spec.rb | 15 - spec/models/serverspec_result_detail_spec.rb | 15 - spec/models/serverspec_result_spec.rb | 15 - spec/models/serverspec_schedule_spec.rb | 27 -- spec/models/serverspec_spec.rb | 69 --- spec/policies/serverspec_policy_spec.rb | 73 --- 12 files changed, 132 insertions(+), 923 deletions(-) delete mode 100644 spec/controllers/serverspecs_controller_spec.rb delete mode 100644 spec/factories/dish_serverspecs.rb delete mode 100644 spec/jobs/serverspec_job_spec.rb delete mode 100644 spec/models/dish_serverspec_spec.rb delete mode 100644 spec/models/resource_serverspec_spec.rb delete mode 100644 spec/models/serverspec_result_detail_spec.rb delete mode 100644 spec/models/serverspec_result_spec.rb delete mode 100644 spec/models/serverspec_schedule_spec.rb delete mode 100644 spec/models/serverspec_spec.rb delete mode 100644 spec/policies/serverspec_policy_spec.rb diff --git a/db/migrate/20161205054856_add_category_to_servertests.rb b/db/migrate/20161205054856_add_category_to_servertests.rb index 98687e72b..b6155e0ab 100644 --- a/db/migrate/20161205054856_add_category_to_servertests.rb +++ b/db/migrate/20161205054856_add_category_to_servertests.rb @@ -1,5 +1,5 @@ class AddCategoryToServertests < ActiveRecord::Migration def change - add_column :servertests, :category, :integer, null: false + add_column :servertests, :category, :integer end end diff --git a/db/schema.rb b/db/schema.rb index dcb9944c6..342657d0b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -14,43 +14,41 @@ ActiveRecord::Schema.define(version: 20161206020140) do create_table "app_settings", force: :cascade do |t| - t.string "aws_region", limit: 255, null: false + t.string "aws_region", null: false t.datetime "created_at" t.datetime "updated_at" - t.string "log_directory", limit: 255, null: false - t.integer "ec2_private_key_id", limit: 4 - t.string "zabbix_fqdn", limit: 255 - t.string "zabbix_user", limit: 255 - t.string "zabbix_pass", limit: 255 + t.string "log_directory", null: false + t.integer "ec2_private_key_id" + t.string "zabbix_fqdn" + t.string "zabbix_user" + t.string "zabbix_pass" end - add_index "app_settings", ["ec2_private_key_id"], name: "fk_rails_cab00b44e4", using: :btree - create_table "cf_templates", force: :cascade do |t| - t.integer "infrastructure_id", limit: 4 - t.string "name", limit: 255 - t.text "detail", limit: 65535 - t.text "value", limit: 65535 + t.integer "infrastructure_id" + t.string "name" + t.text "detail" + t.text "value" t.datetime "created_at" t.datetime "updated_at" - t.text "params", limit: 65535 - t.integer "user_id", limit: 4 + t.text "params" + t.integer "user_id" end - add_index "cf_templates", ["infrastructure_id"], name: "manage_jsons_infrastructure_id_fk", using: :btree + add_index "cf_templates", ["infrastructure_id"], name: "manage_jsons_infrastructure_id_fk" create_table "clients", force: :cascade do |t| - t.string "code", limit: 255 - t.string "name", limit: 255 + t.string "code" + t.string "name" t.datetime "created_at" t.datetime "updated_at" end create_table "cloud_providers", force: :cascade do |t| - t.string "name", limit: 255 + t.string "name" end - add_index "cloud_providers", ["name"], name: "index_cloud_providers_on_name", unique: true, using: :btree + add_index "cloud_providers", ["name"], name: "index_cloud_providers_on_name", unique: true create_table "cloud_watches", force: :cascade do |t| t.datetime "created_at" @@ -58,238 +56,226 @@ end create_table "dish_servertests", force: :cascade do |t| - t.integer "dish_id", limit: 4, null: false - t.integer "servertest_id", limit: 4, null: false + t.integer "dish_id", null: false + t.integer "servertest_id", null: false t.datetime "created_at" t.datetime "updated_at" end create_table "dishes", force: :cascade do |t| - t.string "name", limit: 255 - t.text "runlist", limit: 65535 - t.integer "project_id", limit: 4 - t.string "status", limit: 255 + t.string "name" + t.text "runlist" + t.integer "project_id" + t.string "status" t.datetime "created_at" t.datetime "updated_at" - t.text "detail", limit: 65535 + t.text "detail" end create_table "ec2_private_keys", force: :cascade do |t| - t.string "name", limit: 255 - t.text "value", limit: 65535 + t.string "name" + t.text "value" end create_table "infrastructure_logs", force: :cascade do |t| - t.integer "infrastructure_id", limit: 4 + t.integer "infrastructure_id" t.boolean "status" t.text "details", limit: 16777215 t.datetime "created_at" t.datetime "updated_at" - t.integer "user_id", limit: 4 + t.integer "user_id" end create_table "infrastructures", force: :cascade do |t| t.datetime "created_at" t.datetime "updated_at" - t.string "region", limit: 255 - t.string "status", limit: 255 - t.string "stack_name", limit: 255 - t.integer "project_id", limit: 4 - t.integer "ec2_private_key_id", limit: 4 + t.string "region" + t.string "status" + t.string "stack_name" + t.integer "project_id" + t.integer "ec2_private_key_id" end - add_index "infrastructures", ["ec2_private_key_id"], name: "fk_rails_0e13016c7c", using: :btree - add_index "infrastructures", ["project_id"], name: "infrastructures_project_id_fk", using: :btree - add_index "infrastructures", ["stack_name", "region"], name: "index_infrastructures_on_stack_name_and_region_and_apikey", unique: true, using: :btree + add_index "infrastructures", ["project_id"], name: "infrastructures_project_id_fk" + add_index "infrastructures", ["stack_name", "region"], name: "index_infrastructures_on_stack_name_and_region_and_apikey", unique: true create_table "master_monitorings", force: :cascade do |t| - t.string "name", limit: 255 - t.string "item", limit: 255 - t.string "trigger_expression", limit: 255 + t.string "name" + t.string "item" + t.string "trigger_expression" t.boolean "is_common" end - add_index "master_monitorings", ["name"], name: "index_master_monitorings_on_name", unique: true, using: :btree + add_index "master_monitorings", ["name"], name: "index_master_monitorings_on_name", unique: true create_table "monitorings", force: :cascade do |t| - t.integer "infrastructure_id", limit: 4 - t.integer "master_monitoring_id", limit: 4 + t.integer "infrastructure_id" + t.integer "master_monitoring_id" end create_table "operation_durations", force: :cascade do |t| - t.integer "resource_id", limit: 4 + t.integer "resource_id" t.datetime "start_date" t.datetime "end_date" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "user_id", limit: 4 + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.integer "user_id" end create_table "project_parameters", force: :cascade do |t| - t.integer "project_id", limit: 4, null: false - t.string "key", limit: 255, null: false - t.string "value", limit: 255, null: false + t.integer "project_id", null: false + t.string "key", null: false + t.string "value", null: false t.datetime "created_at" t.datetime "updated_at" end - add_index "project_parameters", ["project_id", "key"], name: "index_project_parameters_on_project_id_and_key", unique: true, using: :btree - add_index "project_parameters", ["project_id"], name: "index_project_parameters_on_project_id", using: :btree + add_index "project_parameters", ["project_id", "key"], name: "index_project_parameters_on_project_id_and_key", unique: true + add_index "project_parameters", ["project_id"], name: "index_project_parameters_on_project_id" create_table "projects", force: :cascade do |t| - t.string "code", limit: 255 + t.string "code" t.datetime "created_at" t.datetime "updated_at" - t.string "name", limit: 255 - t.integer "client_id", limit: 4 - t.string "access_key", limit: 255 - t.string "secret_access_key", limit: 255 - t.integer "cloud_provider_id", limit: 4, null: false - t.integer "zabbix_server_id", limit: 4 + t.string "name" + t.integer "client_id" + t.string "access_key" + t.string "secret_access_key" + t.integer "cloud_provider_id", null: false + t.integer "zabbix_server_id" end - add_index "projects", ["client_id"], name: "projects_client_id_fk", using: :btree - add_index "projects", ["zabbix_server_id"], name: "index_projects_on_zabbix_server_id", using: :btree + add_index "projects", ["client_id"], name: "projects_client_id_fk" + add_index "projects", ["zabbix_server_id"], name: "index_projects_on_zabbix_server_id" create_table "recurring_dates", force: :cascade do |t| - t.string "operation_duration_id", limit: 255 - t.integer "repeats", limit: 4 + t.string "operation_duration_id" + t.integer "repeats" t.time "start_time" t.time "end_time" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.text "dates", limit: 65535 + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.text "dates" end create_table "resource_servertests", force: :cascade do |t| - t.integer "resource_id", limit: 4, null: false - t.integer "servertest_id", limit: 4, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.integer "resource_id", null: false + t.integer "servertest_id", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end create_table "resource_statuses", force: :cascade do |t| - t.integer "resource_id", limit: 4 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.integer "value", limit: 4, null: false - t.integer "kind", limit: 4, null: false + t.integer "resource_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.integer "value", null: false + t.integer "kind", null: false end create_table "resources", force: :cascade do |t| - t.string "physical_id", limit: 255, null: false - t.string "type_name", limit: 255, null: false - t.integer "infrastructure_id", limit: 4, null: false + t.string "physical_id", null: false + t.string "type_name", null: false + t.integer "infrastructure_id", null: false t.datetime "created_at" t.datetime "updated_at" - t.string "screen_name", limit: 255 - t.integer "dish_id", limit: 4 + t.string "screen_name" + t.integer "dish_id" end - add_index "resources", ["physical_id"], name: "index_resources_on_physical_id", unique: true, using: :btree + add_index "resources", ["physical_id"], name: "index_resources_on_physical_id", unique: true create_table "retention_policies", force: :cascade do |t| - t.string "resource_id", limit: 255, null: false - t.integer "max_amount", limit: 4 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.string "resource_id", null: false + t.integer "max_amount" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end - add_index "retention_policies", ["resource_id"], name: "index_retention_policies_on_resource_id", unique: true, using: :btree + add_index "retention_policies", ["resource_id"], name: "index_retention_policies_on_resource_id", unique: true create_table "schedules", force: :cascade do |t| - t.boolean "enabled", default: false, null: false - t.integer "frequency", limit: 4 - t.integer "day_of_week", limit: 4 - t.integer "time", limit: 4 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "physical_id", limit: 255 - t.string "type", limit: 255, null: false - t.string "volume_id", limit: 255 + t.boolean "enabled", default: false, null: false + t.integer "frequency" + t.integer "day_of_week" + t.integer "time" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.string "physical_id" + t.string "type", null: false + t.string "volume_id" end create_table "servertest_result_details", force: :cascade do |t| - t.integer "servertest_id", limit: 4 - t.integer "servertest_result_id", limit: 4 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.integer "servertest_id" + t.integer "servertest_result_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end create_table "servertest_results", force: :cascade do |t| - t.integer "resource_id", limit: 4 - t.integer "status", limit: 4 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.text "message", limit: 65535 + t.integer "resource_id" + t.integer "status" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.text "message" end create_table "servertests", force: :cascade do |t| - t.integer "infrastructure_id", limit: 4 - t.string "name", limit: 255, null: false - t.text "value", limit: 65535, null: false + t.integer "infrastructure_id" + t.string "name", null: false + t.text "value", null: false t.datetime "created_at" t.datetime "updated_at" - t.text "description", limit: 65535 - t.integer "category", limit: 4, null: false + t.text "description" + t.integer "category" end create_table "user_projects", id: false, force: :cascade do |t| - t.integer "user_id", limit: 4, null: false - t.integer "project_id", limit: 4, null: false + t.integer "user_id", null: false + t.integer "project_id", null: false end - add_index "user_projects", ["project_id"], name: "user_projects_project_id_fk", using: :btree - add_index "user_projects", ["user_id", "project_id"], name: "index_user_projects_on_user_id_and_project_id", unique: true, using: :btree + add_index "user_projects", ["project_id"], name: "user_projects_project_id_fk" + add_index "user_projects", ["user_id", "project_id"], name: "index_user_projects_on_user_id_and_project_id", unique: true create_table "user_zabbix_servers", id: false, force: :cascade do |t| - t.integer "user_id", limit: 4, null: false - t.integer "zabbix_server_id", limit: 4, null: false + t.integer "user_id", null: false + t.integer "zabbix_server_id", null: false end - add_index "user_zabbix_servers", ["user_id"], name: "user_zabbix_servers_zabbix_server_id_fk", using: :btree - add_index "user_zabbix_servers", ["zabbix_server_id", "user_id"], name: "index_user_zabbix_servers_on_user_id_and_zabbix_server_id", unique: true, using: :btree + add_index "user_zabbix_servers", ["user_id"], name: "user_zabbix_servers_zabbix_server_id_fk" + add_index "user_zabbix_servers", ["zabbix_server_id", "user_id"], name: "index_user_zabbix_servers_on_user_id_and_zabbix_server_id", unique: true create_table "users", force: :cascade do |t| - t.string "email", limit: 255, default: "", null: false - t.string "encrypted_password", limit: 255, default: "", null: false - t.string "reset_password_token", limit: 255 + t.string "email", default: "", null: false + t.string "encrypted_password", default: "", null: false + t.string "reset_password_token" t.datetime "reset_password_sent_at" t.datetime "remember_created_at" - t.integer "sign_in_count", limit: 4, default: 0, null: false + t.integer "sign_in_count", default: 0, null: false t.datetime "current_sign_in_at" t.datetime "last_sign_in_at" - t.string "current_sign_in_ip", limit: 255 - t.string "last_sign_in_ip", limit: 255 + t.string "current_sign_in_ip" + t.string "last_sign_in_ip" t.datetime "created_at" t.datetime "updated_at" t.boolean "admin" t.boolean "master" - t.string "mfa_secret_key", limit: 255 + t.string "mfa_secret_key" end - add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree - add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree + add_index "users", ["email"], name: "index_users_on_email", unique: true + add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true create_table "zabbix_servers", force: :cascade do |t| - t.string "fqdn", limit: 255 - t.string "username", limit: 255 - t.string "password", limit: 255 - t.string "version", limit: 255 - t.string "details", limit: 255 - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.string "fqdn" + t.string "username" + t.string "password" + t.string "version" + t.string "details" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end - add_foreign_key "app_settings", "ec2_private_keys", on_delete: :cascade - add_foreign_key "cf_templates", "infrastructures", on_delete: :cascade - add_foreign_key "infrastructures", "ec2_private_keys", on_delete: :cascade - add_foreign_key "infrastructures", "projects", on_delete: :cascade - add_foreign_key "project_parameters", "projects" - add_foreign_key "projects", "clients", on_delete: :cascade - add_foreign_key "projects", "zabbix_servers" - add_foreign_key "user_projects", "projects", on_delete: :cascade - add_foreign_key "user_projects", "users", on_delete: :cascade - add_foreign_key "user_zabbix_servers", "users", on_delete: :cascade - add_foreign_key "user_zabbix_servers", "zabbix_servers", on_delete: :cascade end diff --git a/spec/controllers/serverspecs_controller_spec.rb b/spec/controllers/serverspecs_controller_spec.rb deleted file mode 100644 index 87a1a95c4..000000000 --- a/spec/controllers/serverspecs_controller_spec.rb +++ /dev/null @@ -1,433 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -describe ServerspecsController, type: :controller do - login_user - let(:infrastructure){create(:infrastructure)} - let(:svrsp_name){'name'} - let(:svrsp_desc){'description'} - let(:svrsp_value){'value'} - let(:serverspec){attributes_for(:serverspec, name: svrsp_name, description: svrsp_desc, value: svrsp_value, infrastructure_id: infrastructure_id)} - - describe '#index' do - let(:req){get :index, infrastructure_id: infrastructure.id} - - before do - create_list(:serverspec, 3, infrastructure_id: infrastructure.id) - req - end - - it 'should assign @serverspec' do - expect(assigns[:serverspecs]).to be_all{|serverspec|serverspec.kind_of?(Serverspec)} - end - - context 'when accessed index without infrastructure id' do - let(:infrastructure){double("dummy", id: nil)} - - it 'should render index' do - expect(response).to render_template :index - end - - it 'infrastructure name should be nil' do - expect(assigns[:infrastructure_name]).to be_nil - end - end - - context 'when accessed index with infrastructure id' do - it 'infrastructure name should not be nil' do - expect(assigns[:infrastructure_name]).to eq infrastructure.stack_name - end - - it 'should assign @serverspecs where infra id = infra.id(from url)' do - expect(assigns[:serverspecs]).to be_all{|serverspec|serverspec.infrastructure_id == infrastructure.id} - end - end - end # end of describe #index - - describe 'Get #new' do - let(:get_new){get :new} - - before do - get_new - end - - context 'when accessed' do - it 'should render new' do - expect(response).to render_template :new - end - - it 'serverspec.value should be pre-set' do - expect(assigns(:serverspec).value).to eq("require 'serverspec_helper'\n\n") - end - end - - context 'when accessed without infrastructure_id' do - it 'should assign serverspec without infrastracture_id' do - expect(assigns(:serverspec).infrastructure_id).to be_nil - end - end - - context 'when accessed with infrastracture_id' do - let(:get_new){get :new, infrastructure_id: infrastructure.id} - - it 'should assign severspec with infrastracture_id' do - expect(assigns(:serverspec).infrastructure_id).to_not be_nil - end - end - end # end of describe #new - - describe 'GET #show' do - let(:serverspec){create(:serverspec)} - - before do - get :show, id: serverspec.id - end - - context 'when accessed show' do - it 'should render text server.value' do - expect(response.body).to eq serverspec.value - end - end - end - - describe 'POST #create' do - let(:infrastructure_id){nil} - let(:create_request){post :create, serverspec: serverspec} - - context 'when valid params' do - before do - create_request - end - - it 'should assign a new serverspec and save' do - expect(assigns(:serverspec)).to be_a(Serverspec) - expect(assigns(:serverspec)).to be_persisted - end - - it 'should redirect to serverspacs_path with infra_id false' do - expect(response).to redirect_to(serverspecs_path(infrastructure_id: assigns(:serverspec).infrastructure_id)) - end - - context 'when infrastructure_id true' do - let(:infrastructure_id){infrastructure.id} - - it 'serverspce.infra_id should not be nil' do - expect(assigns(:serverspec).infrastructure_id).to eq(infrastructure_id) - end - end - - context 'when infrastructure_id false' do - it 'serverspec.infra_id should be nil' do - expect(assigns(:serverspec).infrastructure_id).to be_nil - end - end - end - - context 'when invalid params' do - before do - allow_any_instance_of(Serverspec).to receive(:save!).and_raise - create_request - end - - it 'should not save' do - expect(assigns(:serverspec)).not_to be_persisted - end - - it 'should render #new' do - expect(response).to render_template :new - end - end - end # end of describe post #create - - describe 'PATCH #update' do - let(:new_serverspec){create(:serverspec)} - let(:infrastructure_id){nil} - let(:update_request){s = serverspec.dup; s.delete(:infrastructure_id); patch :update, id: new_serverspec.id, serverspec: s} - - context 'when valid params' do - before do - update_request - end - - it 'should update finely' do - s = Serverspec.find(new_serverspec.id) - expect(s.name).to eq(svrsp_name) - expect(s.description).to eq(svrsp_desc) - expect(s.value).to eq(svrsp_value) - end - end - - context 'when invalid params' do - before do - allow_any_instance_of(Serverspec).to receive(:update).and_return(false) - update_request - end - - it 'should render edit' do - expect(response).to render_template :edit - end - end - end # end of patch #update - - describe 'GET #generator' do - let(:req){get :generator} - before{req} - - context 'when have infra id' do - let(:infra){create(:infrastructure)} - let(:req){get :generator, infrastructure_id: infra.id} - - should_be_success - it 'should assign @infra' do - expect(assigns[:infra]).to eq infra - end - end - - context 'when not have infra id' do - should_be_success - it 'should not assign @infra' do - expect(assigns[:infra]).to be_nil - end - end - end - - describe 'DELETE #destroy' do - let(:new_serverspec){create(:serverspec)} - let(:delete_request){delete :destroy, id: new_serverspec.id} - - before do - delete_request - end - - subject{Serverspec.find(new_serverspec.id)} - - context 'when serverspec is deleted' do - it 'should raise an error' do - expect{subject}.to raise_error ActiveRecord::RecordNotFound - end - - it 'should redirect' do - infra_id = new_serverspec.infrastructure_id - expect(response).to redirect_to(serverspecs_path(infrastructure_id: infra_id)) - end - end - end #end of delete # destroy - - describe '#select' do - shared_context 'get_page' do |bool| - let(:infra){create(:infrastructure)} - let(:specs){create_list(:serverspec, 3, infrastructure: infra)} - let(:physical_id){SecureRandom.base64(10)} - let(:dish){create(:dish, serverspecs: [create(:serverspec)])} - let(:resource){create(:resource, physical_id: physical_id, dish: dish, infrastructure: infra, serverspecs: [create(:serverspec)])} - - before do - specs - resource - node = double(have_auto_generated: bool) - allow(Node).to receive(:new).and_return(node) - end - - before do - get :select, physical_id: physical_id, infra_id: infra.id - end - - should_be_success - - subject {response} - - it 'render serverspecs/_select' do - is_expected.to render_template('serverspecs/select') - end - - it 'should assign @selected_serverspec_ids' do - expect(assigns[:selected_serverspec_ids]).to match_array(dish.serverspec_ids | resource.serverspec_ids) - end - - it 'assigns @individual_serverspecs' do - expect(assigns[:individual_serverspecs]).to match_array(specs) - end - - it 'assigns @global_serverspecs' do - expect(assigns[:global_serverspecs]).to match_array([]) - end - - it 'assigns @serverspec_schedule' do - expect(assigns[:serverspec_schedule]).to be_a ServerspecSchedule - end - end - - context 'when have auto_generated' do - include_context 'get_page', true - - it 'assigns @is_available_auto_generated' do - expect(assigns[:is_available_auto_generated]).to be_truthy - end - end - - context 'when not have auto_generated' do - include_context 'get_page', false - - it 'assigns @is_available_auto_generated' do - expect(assigns[:is_available_auto_generated]).to be_falsey - end - end - end - - describe '#results' do - let(:specs){create_list(:serverspec, 3, infrastructure: infrastructure)} - let(:physical_id){SecureRandom.base64(10)} - let(:resource){create(:resource, physical_id: physical_id, infrastructure: infrastructure, serverspecs: specs)} - - before do - resource # exec create resource - create(:serverspec_result, serverspecs: specs, resource: resource) - get :results, physical_id: physical_id, infra_id: infrastructure.id, format: 'json' # send HTTP request - end - - should_be_success - - it 'should assign @serverspec_results' do - expect(assigns[:serverspec_results]).to eq resource.serverspec_results - end - end - - describe '#run' do - let(:infra){create(:infrastructure)} - let(:physical_id){SecureRandom.base64(10)} - let(:serverspecs){create_list(:serverspec, 3)} - let(:resource){create(:resource, physical_id: physical_id, infrastructure: infra)} - let(:serverspec_ids){serverspecs.map(&:id)} - let(:failure_count){0} - let(:pending_count){0} - let(:status_text){'success'} - let(:resp){{ - examples: [{status: 'pending', full_description: 'hogefuga'}], - status: true, - status_text: status_text, - }} - let(:req){post :run, physical_id: physical_id, infra_id: infra.id, serverspec_ids: serverspec_ids} - - before do - resource - allow(ServerspecJob).to receive(:perform_now).and_return(resp) - end - - context 'when selected auto generated' do - let(:serverspec_ids){serverspecs.map(&:id).push('-1')} - - it 'should call run_serverspec with auto generated flag true' do - expect(ServerspecJob).to receive(:perform_now).with( - physical_id, infra.id.to_param, kind_of(Integer), - serverspec_ids: serverspecs.map{|x|x.id.to_s}, auto_generated: true - ) - req - end - end - - context 'when not selected auto generated' do - it 'should call run_serverspec with auto generated flag false' do - expect(ServerspecJob).to receive(:perform_now).with( - physical_id, infra.id.to_param, kind_of(Integer), - serverspec_ids: serverspecs.map{|x|x.id.to_s}, auto_generated: false - ) - req - end - end - - context 'when Serverspec command is failed' do - let(:err_msg){'This is Error <3'} - before do - allow(ServerspecJob).to receive(:perform_now).and_raise(err_msg) - req - end - should_be_failure - - it 'should render message' do - expect(response.body).to eq err_msg - end - end - - context 'when serverspec result is fail' do - let(:status_text){'failed'} - before{req} - should_be_success - end - - context 'when serverspec result is pending' do - let(:status_text){'pending'} - before{req} - should_be_success - end - - context 'when serverspec result is success' do - let(:status_text){'success'} - before{req} - should_be_success - end - end - - describe "#create_for_rds" do - let(:infra_id){infrastructure.id} - let(:physical_id){"i-abcd1234"} - let(:username){"username"} - let(:password){"password"} - let(:database){"MyDatabase"} - let(:rds){double(:rds)} - - let(:request_createrds){put :create_for_rds, infra_id: infrastructure.id, physical_id: physical_id, username: username, password: password, database: database} - - before do - allow(RDS).to receive(:new).with(infrastructure, physical_id).and_return(rds) - expect(Serverspec).to receive(:create_rds).with(rds, username, password, infra_id.to_s, database) - request_createrds - end - - subject{Infrastructure.find(infra_id) } - - it "should find infra by infra_id" do - expect(subject).to eq(infrastructure) - end - - it "should be success" do - expect(response).to be_success - end - end - - describe "#schedule" do - let(:serverspec_schedule) { create(:serverspec_schedule) } - let(:physical_id) { serverspec_schedule.physical_id } - let(:infra_id) { infrastructure.id } - let(:schedule) { attributes_for(:serverspec_schedule) } - let(:req){post(:schedule, {physical_id: physical_id, infra_id: infra_id, schedule: schedule})} - - before do - allow(Sidekiq::ScheduledSet).to receive_message_chain(:new, :select).and_return([]) - end - - context "when enabled" do - before do - expect(PeriodicServerspecJob).to receive_message_chain(:set, :perform_later) - req - end - - should_be_success - end - - context "when disabled" do - before do - schedule[:enabled] = false - req - end - - should_be_success - end - end -end diff --git a/spec/factories/dish_serverspecs.rb b/spec/factories/dish_serverspecs.rb deleted file mode 100644 index 7c16c9907..000000000 --- a/spec/factories/dish_serverspecs.rb +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -# Read about factories at https://github.com/thoughtbot/factory_girl - -FactoryGirl.define do - factory :dish_serverspec do - end -end diff --git a/spec/jobs/serverspec_job_spec.rb b/spec/jobs/serverspec_job_spec.rb deleted file mode 100644 index db7754eb8..000000000 --- a/spec/jobs/serverspec_job_spec.rb +++ /dev/null @@ -1,104 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -RSpec.describe ServerspecJob, type: :job do - describe '#perform' do - let(:infra){create(:infrastructure)} - let(:physical_id){SecureRandom.base64(10)} - let(:serverspecs){create_list(:serverspec, 3)} - let(:resource){create(:resource, physical_id: physical_id, infrastructure: infra, serverspecs: serverspecs)} - let(:user){create(:user)} - let(:status_text){'success'} - let(:resp){{ - status_text: status_text, - message: 'Success!', - status: status_text != 'failed', - }} - let(:job){ServerspecJob.perform_now(physical_id, infra.id, user.id)} - - before do - allow_any_instance_of(Node).to receive(:run_serverspec).with(infra.id, serverspecs.map(&:id), false).and_return(resp) - resource - end - - it 'should return resp' do - expect(job).to eq resp - end - - context 'when received serverspec_ids' do - let(:altr_serverspecs){create_list(:serverspec, 4)} - it 'serverspec_ids of resource should be update' do - ids = altr_serverspecs.map(&:id) - allow_any_instance_of(Node).to receive(:run_serverspec).with(infra.id, ids, false).and_return(resp) - ServerspecJob.perform_now(physical_id, infra.id, user.id, serverspec_ids: ids) - resource.reload - expect(resource.serverspecs).to eq altr_serverspecs - end - end - - context 'when raise error' do - before do - allow_any_instance_of(Node).to receive(:run_serverspec).and_raise StandardError - end - - it 'should raise error' do - expect{job}.to raise_error StandardError - end - - it 'should create infra log' do - expect{job rescue nil}.to change(InfrastructureLog, :count).by(2) - end - - it 'should be failure' do - job rescue nil - expect(InfrastructureLog.last.status).to be false - end - end - - context 'when status success' do - let(:status_text){'success'} - - it 'should create infra log' do - expect{job}.to change(InfrastructureLog, :count).by(2) - end - - it 'should be success' do - job - expect(InfrastructureLog.last.status).to be true - end - end - - context 'when status pending' do - let(:status_text){'pending'} - - it 'should create infra log' do - expect{job}.to change(InfrastructureLog, :count).by(2) - end - - it 'should be success' do - job - expect(InfrastructureLog.last.status).to be true - end - end - - context 'when status pending' do - let(:status_text){'failed'} - - it 'should create infra log' do - expect{job}.to change(InfrastructureLog, :count).by(2) - end - - it 'should be failure' do - job - expect(InfrastructureLog.last.status).to be false - end - end - end -end diff --git a/spec/models/dish_serverspec_spec.rb b/spec/models/dish_serverspec_spec.rb deleted file mode 100644 index ab6925a56..000000000 --- a/spec/models/dish_serverspec_spec.rb +++ /dev/null @@ -1,12 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -RSpec.describe DishServerspec, type: :model do -end diff --git a/spec/models/resource_serverspec_spec.rb b/spec/models/resource_serverspec_spec.rb deleted file mode 100644 index 522f23f06..000000000 --- a/spec/models/resource_serverspec_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -RSpec.describe ResourceServerspec, type: :model do - it "is valid with valid attributes" do - expect(ResourceServerspec.new).to be_valid - end -end diff --git a/spec/models/serverspec_result_detail_spec.rb b/spec/models/serverspec_result_detail_spec.rb deleted file mode 100644 index 88b9d494f..000000000 --- a/spec/models/serverspec_result_detail_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -RSpec.describe ServerspecResultDetail, type: :model do - it "is valid with valid attributes" do - expect(ServerspecResultDetail.new).to be_valid - end -end diff --git a/spec/models/serverspec_result_spec.rb b/spec/models/serverspec_result_spec.rb deleted file mode 100644 index 65cee07c5..000000000 --- a/spec/models/serverspec_result_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -RSpec.describe ServerspecResult, type: :model do - it "is valid with valid attributes" do - expect(ServerspecResult.new).to be_valid - end -end diff --git a/spec/models/serverspec_schedule_spec.rb b/spec/models/serverspec_schedule_spec.rb deleted file mode 100644 index b8f8560de..000000000 --- a/spec/models/serverspec_schedule_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -RSpec.describe ServerspecSchedule, type: :model do - let(:schedule) { build_stubbed(:serverspec_schedule) } - - describe "#next_run" do - it 'should return future time' do - expect(schedule.next_run).to be >= Time.current - end - - it 'should be same o\'clock' do - expect(schedule.next_run.hour).to eq schedule.time - end - - it 'should be same day of week' do - expect(schedule.next_run.wday).to eq schedule[:day_of_week] - end - end -end diff --git a/spec/models/serverspec_spec.rb b/spec/models/serverspec_spec.rb deleted file mode 100644 index 04be72d18..000000000 --- a/spec/models/serverspec_spec.rb +++ /dev/null @@ -1,69 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -# TODO: refactor -describe Serverspec, type: :model do - let(:klass){Serverspec} - - describe 'with validation' do - describe 'column value' do - let(:serverspec){build(:serverspec)} - it 'should be ruby code' do - serverspec.value = 'invalid as ruby code{{{' - expect(serverspec.save).to be false - serverspec.value = 'valid as ruby code' - expect(serverspec.save).to be true - end - end - end - - before(:each) do - klass.create(infrastructure_id: nil, name: 'recipe_apache2', value: 'code hoge') - klass.create(infrastructure_id: 1, name: 'for_infra1', value: 'code fuga') - klass.create(infrastructure_id: 2, name: 'for_infra2', value: 'code piyo') - end - - it {is_expected.to respond_to(:name)} - it {is_expected.to respond_to(:infrastructure_id)} - it {is_expected.to respond_to(:value)} - - describe '.for_infra' do - it 'return array' do - expect(klass.for_infra(1)).to be_kind_of Array - end - - it 'return size == 2' do - expect(klass.for_infra(1).size).to eq 2 - end - end - - describe '.global' do - it 'should return global Serverspecs' do - expect(klass.global).to be_all{|s|s.infrastructure_id.nil?} - end - end - - describe '.to_file' do - it 'return spec path' do - expect(klass.to_file(1)).to be_kind_of String - end - end - - describe '.create_rds' do - let(:rds){double('rds', {engine_type: '', endpoint_address: ''})} - user = 'hoge' - pass = 'passwd' - infrastructure_id = 1 - - it 'new Serverspec instance' do - expect(klass.create_rds(rds, user, pass, infrastructure_id)).to be_kind_of klass - end - end -end diff --git a/spec/policies/serverspec_policy_spec.rb b/spec/policies/serverspec_policy_spec.rb deleted file mode 100644 index de8809243..000000000 --- a/spec/policies/serverspec_policy_spec.rb +++ /dev/null @@ -1,73 +0,0 @@ -# -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -# -# This software is released under the MIT License. -# -# http://opensource.org/licenses/mit-license.php -# - -require_relative '../spec_helper' - -describe ServerspecPolicy do - subject{described_class} - - let(:master_admin){build_stubbed(:user, master: true, admin: true)} - let(:master){ build_stubbed(:user, master: true, admin: false)} - let(:admin){ build_stubbed(:user, master: false, admin: true)} - let(:normal){ build_stubbed(:user, master: false, admin: false)} - - let(:serverspec_with_infra){ build_stubbed(:serverspec)} - let(:serverspec_without_infra){build_stubbed(:serverspec, infrastructure: nil)} - - - %i[index? show?].each do |action| - permissions action do - context 'serverspec has infra' do - it 'should grant allowed user' do - is_expected.not_to permit(normal, serverspec_with_infra) - - normal.projects = [serverspec_with_infra.infrastructure.project] - is_expected.to permit(normal, serverspec_with_infra) - end - end - - context "serverspec doesn't have infra" do - it 'should grant all user' do - is_expected.to permit(master_admin, serverspec_without_infra) - is_expected.to permit(master, serverspec_without_infra) - is_expected.to permit(admin, serverspec_without_infra) - is_expected.to permit(normal, serverspec_without_infra) - end - end - end - end - - %i[new? update? create? edit? destroy? select? run? create_for_rds? schedule?].each do |action| - permissions action do - context 'serverspec has infra' do - it 'should grant allowed user' do - is_expected.not_to permit(admin, serverspec_with_infra) - - admin.projects = [serverspec_with_infra.infrastructure.project] - is_expected.to permit(admin, serverspec_with_infra) - end - - it 'should deny not admin user' do - normal.projects = [serverspec_with_infra.infrastructure.project] - is_expected.not_to permit(normal, serverspec_with_infra) - master.projects = [serverspec_with_infra.infrastructure.project] - is_expected.not_to permit(master, serverspec_with_infra) - end - end - - context "serverspec doesn't have infra" do - it 'should grant only master and admin user' do - is_expected.to permit(master_admin, serverspec_without_infra) - is_expected.not_to permit(master, serverspec_without_infra) - is_expected.not_to permit(admin, serverspec_without_infra) - is_expected.not_to permit(normal, serverspec_without_infra) - end - end - end - end -end From bbd6a31d387ad369c4c5fb9fe370855ce65d1f58 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 4 Jan 2017 16:30:37 +0900 Subject: [PATCH 054/133] Added renamed servertest spec files --- .../servertests_controller_spec.rb | 434 ++++++++++++++++++ spec/factories/dish_servertests.rb | 14 + spec/jobs/servertest_job_spec.rb | 104 +++++ spec/models/dish_servertest_spec.rb | 12 + spec/models/resource_servertest_spec.rb | 15 + spec/models/servertest_result_detail_spec.rb | 15 + spec/models/servertest_result_spec.rb | 15 + spec/models/servertest_schedule_spec.rb | 27 ++ spec/models/servertest_spec.rb | 69 +++ spec/policies/servertest_policy_spec.rb | 73 +++ 10 files changed, 778 insertions(+) create mode 100644 spec/controllers/servertests_controller_spec.rb create mode 100644 spec/factories/dish_servertests.rb create mode 100644 spec/jobs/servertest_job_spec.rb create mode 100644 spec/models/dish_servertest_spec.rb create mode 100644 spec/models/resource_servertest_spec.rb create mode 100644 spec/models/servertest_result_detail_spec.rb create mode 100644 spec/models/servertest_result_spec.rb create mode 100644 spec/models/servertest_schedule_spec.rb create mode 100644 spec/models/servertest_spec.rb create mode 100644 spec/policies/servertest_policy_spec.rb diff --git a/spec/controllers/servertests_controller_spec.rb b/spec/controllers/servertests_controller_spec.rb new file mode 100644 index 000000000..90936cdb6 --- /dev/null +++ b/spec/controllers/servertests_controller_spec.rb @@ -0,0 +1,434 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +describe ServertestsController, type: :controller do + login_user + let(:infrastructure){create(:infrastructure)} + let(:svrsp_name){'name'} + let(:svrsp_desc){'description'} + let(:svrsp_value){'value'} + let(:svrsp_category){'category'} + let(:servertest){attributes_for(:servertest, name: svrsp_name, description: svrsp_desc, value: svrsp_value, infrastructure_id: infrastructure_id)} + + describe '#index' do + let(:req){get :index, infrastructure_id: infrastructure.id} + + before do + create_list(:servertest, 3, infrastructure_id: infrastructure.id) + req + end + + it 'should assign @servertest' do + expect(assigns[:servertests]).to be_all{|servertest|servertest.kind_of?(Servertest)} + end + + context 'when accessed index without infrastructure id' do + let(:infrastructure){double("dummy", id: nil)} + + it 'should render index' do + expect(response).to render_template :index + end + + it 'infrastructure name should be nil' do + expect(assigns[:infrastructure_name]).to be_nil + end + end + + context 'when accessed index with infrastructure id' do + it 'infrastructure name should not be nil' do + expect(assigns[:infrastructure_name]).to eq infrastructure.stack_name + end + + it 'should assign @servertests where infra id = infra.id(from url)' do + expect(assigns[:servertests]).to be_all{|servertest|serverspec.infrastructure_id == infrastructure.id} + end + end + end # end of describe #index + + describe 'Get #new' do + let(:get_new){get :new} + + before do + get_new + end + + context 'when accessed' do + it 'should render new' do + expect(response).to render_template :new + end + + it 'serverspec.value should be pre-set' do + expect(assigns(:serverspec).value).to eq("require 'serverspec_helper'\n\n") + end + end + + context 'when accessed without infrastructure_id' do + it 'should assign serverspec without infrastracture_id' do + expect(assigns(:serverspec).infrastructure_id).to be_nil + end + end + + context 'when accessed with infrastracture_id' do + let(:get_new){get :new, infrastructure_id: infrastructure.id} + + it 'should assign severspec with infrastracture_id' do + expect(assigns(:serverspec).infrastructure_id).to_not be_nil + end + end + end # end of describe #new + + describe 'GET #show' do + let(:serverspec){create(:serverspec)} + + before do + get :show, id: serverspec.id + end + + context 'when accessed show' do + it 'should render text server.value' do + expect(response.body).to eq serverspec.value + end + end + end + + describe 'POST #create' do + let(:infrastructure_id){nil} + let(:create_request){post :create, serverspec: serverspec} + + context 'when valid params' do + before do + create_request + end + + it 'should assign a new serverspec and save' do + expect(assigns(:serverspec)).to be_a(Serverspec) + expect(assigns(:serverspec)).to be_persisted + end + + it 'should redirect to serverspacs_path with infra_id false' do + expect(response).to redirect_to(serverspecs_path(infrastructure_id: assigns(:serverspec).infrastructure_id)) + end + + context 'when infrastructure_id true' do + let(:infrastructure_id){infrastructure.id} + + it 'serverspce.infra_id should not be nil' do + expect(assigns(:serverspec).infrastructure_id).to eq(infrastructure_id) + end + end + + context 'when infrastructure_id false' do + it 'serverspec.infra_id should be nil' do + expect(assigns(:serverspec).infrastructure_id).to be_nil + end + end + end + + context 'when invalid params' do + before do + allow_any_instance_of(Serverspec).to receive(:save!).and_raise + create_request + end + + it 'should not save' do + expect(assigns(:serverspec)).not_to be_persisted + end + + it 'should render #new' do + expect(response).to render_template :new + end + end + end # end of describe post #create + + describe 'PATCH #update' do + let(:new_serverspec){create(:serverspec)} + let(:infrastructure_id){nil} + let(:update_request){s = serverspec.dup; s.delete(:infrastructure_id); patch :update, id: new_serverspec.id, serverspec: s} + + context 'when valid params' do + before do + update_request + end + + it 'should update finely' do + s = Serverspec.find(new_serverspec.id) + expect(s.name).to eq(svrsp_name) + expect(s.description).to eq(svrsp_desc) + expect(s.value).to eq(svrsp_value) + end + end + + context 'when invalid params' do + before do + allow_any_instance_of(Serverspec).to receive(:update).and_return(false) + update_request + end + + it 'should render edit' do + expect(response).to render_template :edit + end + end + end # end of patch #update + + describe 'GET #generator' do + let(:req){get :generator} + before{req} + + context 'when have infra id' do + let(:infra){create(:infrastructure)} + let(:req){get :generator, infrastructure_id: infra.id} + + should_be_success + it 'should assign @infra' do + expect(assigns[:infra]).to eq infra + end + end + + context 'when not have infra id' do + should_be_success + it 'should not assign @infra' do + expect(assigns[:infra]).to be_nil + end + end + end + + describe 'DELETE #destroy' do + let(:new_serverspec){create(:serverspec)} + let(:delete_request){delete :destroy, id: new_serverspec.id} + + before do + delete_request + end + + subject{Serverspec.find(new_serverspec.id)} + + context 'when serverspec is deleted' do + it 'should raise an error' do + expect{subject}.to raise_error ActiveRecord::RecordNotFound + end + + it 'should redirect' do + infra_id = new_serverspec.infrastructure_id + expect(response).to redirect_to(serverspecs_path(infrastructure_id: infra_id)) + end + end + end #end of delete # destroy + + describe '#select' do + shared_context 'get_page' do |bool| + let(:infra){create(:infrastructure)} + let(:specs){create_list(:serverspec, 3, infrastructure: infra)} + let(:physical_id){SecureRandom.base64(10)} + let(:dish){create(:dish, serverspecs: [create(:serverspec)])} + let(:resource){create(:resource, physical_id: physical_id, dish: dish, infrastructure: infra, serverspecs: [create(:serverspec)])} + + before do + specs + resource + node = double(have_auto_generated: bool) + allow(Node).to receive(:new).and_return(node) + end + + before do + get :select, physical_id: physical_id, infra_id: infra.id + end + + should_be_success + + subject {response} + + it 'render serverspecs/_select' do + is_expected.to render_template('serverspecs/select') + end + + it 'should assign @selected_serverspec_ids' do + expect(assigns[:selected_serverspec_ids]).to match_array(dish.serverspec_ids | resource.serverspec_ids) + end + + it 'assigns @individual_serverspecs' do + expect(assigns[:individual_serverspecs]).to match_array(specs) + end + + it 'assigns @global_serverspecs' do + expect(assigns[:global_serverspecs]).to match_array([]) + end + + it 'assigns @serverspec_schedule' do + expect(assigns[:serverspec_schedule]).to be_a ServerspecSchedule + end + end + + context 'when have auto_generated' do + include_context 'get_page', true + + it 'assigns @is_available_auto_generated' do + expect(assigns[:is_available_auto_generated]).to be_truthy + end + end + + context 'when not have auto_generated' do + include_context 'get_page', false + + it 'assigns @is_available_auto_generated' do + expect(assigns[:is_available_auto_generated]).to be_falsey + end + end + end + + describe '#results' do + let(:specs){create_list(:serverspec, 3, infrastructure: infrastructure)} + let(:physical_id){SecureRandom.base64(10)} + let(:resource){create(:resource, physical_id: physical_id, infrastructure: infrastructure, serverspecs: specs)} + + before do + resource # exec create resource + create(:serverspec_result, serverspecs: specs, resource: resource) + get :results, physical_id: physical_id, infra_id: infrastructure.id, format: 'json' # send HTTP request + end + + should_be_success + + it 'should assign @serverspec_results' do + expect(assigns[:serverspec_results]).to eq resource.serverspec_results + end + end + + describe '#run' do + let(:infra){create(:infrastructure)} + let(:physical_id){SecureRandom.base64(10)} + let(:serverspecs){create_list(:serverspec, 3)} + let(:resource){create(:resource, physical_id: physical_id, infrastructure: infra)} + let(:serverspec_ids){serverspecs.map(&:id)} + let(:failure_count){0} + let(:pending_count){0} + let(:status_text){'success'} + let(:resp){{ + examples: [{status: 'pending', full_description: 'hogefuga'}], + status: true, + status_text: status_text, + }} + let(:req){post :run, physical_id: physical_id, infra_id: infra.id, serverspec_ids: serverspec_ids} + + before do + resource + allow(ServerspecJob).to receive(:perform_now).and_return(resp) + end + + context 'when selected auto generated' do + let(:serverspec_ids){serverspecs.map(&:id).push('-1')} + + it 'should call run_serverspec with auto generated flag true' do + expect(ServerspecJob).to receive(:perform_now).with( + physical_id, infra.id.to_param, kind_of(Integer), + serverspec_ids: serverspecs.map{|x|x.id.to_s}, auto_generated: true + ) + req + end + end + + context 'when not selected auto generated' do + it 'should call run_serverspec with auto generated flag false' do + expect(ServerspecJob).to receive(:perform_now).with( + physical_id, infra.id.to_param, kind_of(Integer), + serverspec_ids: serverspecs.map{|x|x.id.to_s}, auto_generated: false + ) + req + end + end + + context 'when Serverspec command is failed' do + let(:err_msg){'This is Error <3'} + before do + allow(ServerspecJob).to receive(:perform_now).and_raise(err_msg) + req + end + should_be_failure + + it 'should render message' do + expect(response.body).to eq err_msg + end + end + + context 'when serverspec result is fail' do + let(:status_text){'failed'} + before{req} + should_be_success + end + + context 'when serverspec result is pending' do + let(:status_text){'pending'} + before{req} + should_be_success + end + + context 'when serverspec result is success' do + let(:status_text){'success'} + before{req} + should_be_success + end + end + + describe "#create_for_rds" do + let(:infra_id){infrastructure.id} + let(:physical_id){"i-abcd1234"} + let(:username){"username"} + let(:password){"password"} + let(:database){"MyDatabase"} + let(:rds){double(:rds)} + + let(:request_createrds){put :create_for_rds, infra_id: infrastructure.id, physical_id: physical_id, username: username, password: password, database: database} + + before do + allow(RDS).to receive(:new).with(infrastructure, physical_id).and_return(rds) + expect(Serverspec).to receive(:create_rds).with(rds, username, password, infra_id.to_s, database) + request_createrds + end + + subject{Infrastructure.find(infra_id) } + + it "should find infra by infra_id" do + expect(subject).to eq(infrastructure) + end + + it "should be success" do + expect(response).to be_success + end + end + + describe "#schedule" do + let(:serverspec_schedule) { create(:serverspec_schedule) } + let(:physical_id) { serverspec_schedule.physical_id } + let(:infra_id) { infrastructure.id } + let(:schedule) { attributes_for(:serverspec_schedule) } + let(:req){post(:schedule, {physical_id: physical_id, infra_id: infra_id, schedule: schedule})} + + before do + allow(Sidekiq::ScheduledSet).to receive_message_chain(:new, :select).and_return([]) + end + + context "when enabled" do + before do + expect(PeriodicServerspecJob).to receive_message_chain(:set, :perform_later) + req + end + + should_be_success + end + + context "when disabled" do + before do + schedule[:enabled] = false + req + end + + should_be_success + end + end +end diff --git a/spec/factories/dish_servertests.rb b/spec/factories/dish_servertests.rb new file mode 100644 index 000000000..9347b97ee --- /dev/null +++ b/spec/factories/dish_servertests.rb @@ -0,0 +1,14 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +# Read about factories at https://github.com/thoughtbot/factory_girl + +FactoryGirl.define do + factory :dish_servertest do + end +end diff --git a/spec/jobs/servertest_job_spec.rb b/spec/jobs/servertest_job_spec.rb new file mode 100644 index 000000000..ea199e398 --- /dev/null +++ b/spec/jobs/servertest_job_spec.rb @@ -0,0 +1,104 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +RSpec.describe ServertestJob, type: :job do + describe '#perform' do + let(:infra){create(:infrastructure)} + let(:physical_id){SecureRandom.base64(10)} + let(:serverspecs){create_list(:serverspec, 3)} + let(:resource){create(:resource, physical_id: physical_id, infrastructure: infra, serverspecs: serverspecs)} + let(:user){create(:user)} + let(:status_text){'success'} + let(:resp){{ + status_text: status_text, + message: 'Success!', + status: status_text != 'failed', + }} + let(:job){ServerspecJob.perform_now(physical_id, infra.id, user.id)} + + before do + allow_any_instance_of(Node).to receive(:run_serverspec).with(infra.id, serverspecs.map(&:id), false).and_return(resp) + resource + end + + it 'should return resp' do + expect(job).to eq resp + end + + context 'when received serverspec_ids' do + let(:altr_serverspecs){create_list(:serverspec, 4)} + it 'serverspec_ids of resource should be update' do + ids = altr_serverspecs.map(&:id) + allow_any_instance_of(Node).to receive(:run_serverspec).with(infra.id, ids, false).and_return(resp) + ServerspecJob.perform_now(physical_id, infra.id, user.id, serverspec_ids: ids) + resource.reload + expect(resource.serverspecs).to eq altr_serverspecs + end + end + + context 'when raise error' do + before do + allow_any_instance_of(Node).to receive(:run_serverspec).and_raise StandardError + end + + it 'should raise error' do + expect{job}.to raise_error StandardError + end + + it 'should create infra log' do + expect{job rescue nil}.to change(InfrastructureLog, :count).by(2) + end + + it 'should be failure' do + job rescue nil + expect(InfrastructureLog.last.status).to be false + end + end + + context 'when status success' do + let(:status_text){'success'} + + it 'should create infra log' do + expect{job}.to change(InfrastructureLog, :count).by(2) + end + + it 'should be success' do + job + expect(InfrastructureLog.last.status).to be true + end + end + + context 'when status pending' do + let(:status_text){'pending'} + + it 'should create infra log' do + expect{job}.to change(InfrastructureLog, :count).by(2) + end + + it 'should be success' do + job + expect(InfrastructureLog.last.status).to be true + end + end + + context 'when status pending' do + let(:status_text){'failed'} + + it 'should create infra log' do + expect{job}.to change(InfrastructureLog, :count).by(2) + end + + it 'should be failure' do + job + expect(InfrastructureLog.last.status).to be false + end + end + end +end diff --git a/spec/models/dish_servertest_spec.rb b/spec/models/dish_servertest_spec.rb new file mode 100644 index 000000000..8bd6227b7 --- /dev/null +++ b/spec/models/dish_servertest_spec.rb @@ -0,0 +1,12 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +RSpec.describe DishServertest, type: :model do +end diff --git a/spec/models/resource_servertest_spec.rb b/spec/models/resource_servertest_spec.rb new file mode 100644 index 000000000..347134a71 --- /dev/null +++ b/spec/models/resource_servertest_spec.rb @@ -0,0 +1,15 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +RSpec.describe ResourceServertest, type: :model do + it "is valid with valid attributes" do + expect(ResourceServerspec.new).to be_valid + end +end diff --git a/spec/models/servertest_result_detail_spec.rb b/spec/models/servertest_result_detail_spec.rb new file mode 100644 index 000000000..14f316a19 --- /dev/null +++ b/spec/models/servertest_result_detail_spec.rb @@ -0,0 +1,15 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +RSpec.describe ServertestResultDetail, type: :model do + it "is valid with valid attributes" do + expect(ServerspecResultDetail.new).to be_valid + end +end diff --git a/spec/models/servertest_result_spec.rb b/spec/models/servertest_result_spec.rb new file mode 100644 index 000000000..4928a4332 --- /dev/null +++ b/spec/models/servertest_result_spec.rb @@ -0,0 +1,15 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +RSpec.describe ServertestResult, type: :model do + it "is valid with valid attributes" do + expect(ServerspecResult.new).to be_valid + end +end diff --git a/spec/models/servertest_schedule_spec.rb b/spec/models/servertest_schedule_spec.rb new file mode 100644 index 000000000..bdc772f24 --- /dev/null +++ b/spec/models/servertest_schedule_spec.rb @@ -0,0 +1,27 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +RSpec.describe ServertestSchedule, type: :model do + let(:schedule) { build_stubbed(:serverspec_schedule) } + + describe "#next_run" do + it 'should return future time' do + expect(schedule.next_run).to be >= Time.current + end + + it 'should be same o\'clock' do + expect(schedule.next_run.hour).to eq schedule.time + end + + it 'should be same day of week' do + expect(schedule.next_run.wday).to eq schedule[:day_of_week] + end + end +end diff --git a/spec/models/servertest_spec.rb b/spec/models/servertest_spec.rb new file mode 100644 index 000000000..7a892a03d --- /dev/null +++ b/spec/models/servertest_spec.rb @@ -0,0 +1,69 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +# TODO: refactor +describe Servertest, type: :model do + let(:klass){Serverspec} + + describe 'with validation' do + describe 'column value' do + let(:serverspec){build(:serverspec)} + it 'should be ruby code' do + serverspec.value = 'invalid as ruby code{{{' + expect(serverspec.save).to be false + serverspec.value = 'valid as ruby code' + expect(serverspec.save).to be true + end + end + end + + before(:each) do + klass.create(infrastructure_id: nil, name: 'recipe_apache2', value: 'code hoge', category: 1) + klass.create(infrastructure_id: 1, name: 'for_infra1', value: 'code fuga', category: 2) + klass.create(infrastructure_id: 2, name: 'for_infra2', value: 'code piyo', category: 1) + end + + it {is_expected.to respond_to(:name)} + it {is_expected.to respond_to(:infrastructure_id)} + it {is_expected.to respond_to(:value)} + + describe '.for_infra' do + it 'return array' do + expect(klass.for_infra(1)).to be_kind_of Array + end + + it 'return size == 2' do + expect(klass.for_infra(1).size).to eq 2 + end + end + + describe '.global' do + it 'should return global Serverspecs' do + expect(klass.global).to be_all{|s|s.infrastructure_id.nil?} + end + end + + describe '.to_file' do + it 'return spec path' do + expect(klass.to_file(1)).to be_kind_of String + end + end + + describe '.create_rds' do + let(:rds){double('rds', {engine_type: '', endpoint_address: ''})} + user = 'hoge' + pass = 'passwd' + infrastructure_id = 1 + + it 'new Serverspec instance' do + expect(klass.create_rds(rds, user, pass, infrastructure_id)).to be_kind_of klass + end + end +end diff --git a/spec/policies/servertest_policy_spec.rb b/spec/policies/servertest_policy_spec.rb new file mode 100644 index 000000000..e44a8555d --- /dev/null +++ b/spec/policies/servertest_policy_spec.rb @@ -0,0 +1,73 @@ +# +# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# +# This software is released under the MIT License. +# +# http://opensource.org/licenses/mit-license.php +# + +require_relative '../spec_helper' + +describe ServertestPolicy do + subject{described_class} + + let(:master_admin){build_stubbed(:user, master: true, admin: true)} + let(:master){ build_stubbed(:user, master: true, admin: false)} + let(:admin){ build_stubbed(:user, master: false, admin: true)} + let(:normal){ build_stubbed(:user, master: false, admin: false)} + + let(:serverspec_with_infra){ build_stubbed(:serverspec)} + let(:serverspec_without_infra){build_stubbed(:serverspec, infrastructure: nil)} + + + %i[index? show?].each do |action| + permissions action do + context 'serverspec has infra' do + it 'should grant allowed user' do + is_expected.not_to permit(normal, serverspec_with_infra) + + normal.projects = [serverspec_with_infra.infrastructure.project] + is_expected.to permit(normal, serverspec_with_infra) + end + end + + context "serverspec doesn't have infra" do + it 'should grant all user' do + is_expected.to permit(master_admin, serverspec_without_infra) + is_expected.to permit(master, serverspec_without_infra) + is_expected.to permit(admin, serverspec_without_infra) + is_expected.to permit(normal, serverspec_without_infra) + end + end + end + end + + %i[new? update? create? edit? destroy? select? run? create_for_rds? schedule?].each do |action| + permissions action do + context 'serverspec has infra' do + it 'should grant allowed user' do + is_expected.not_to permit(admin, serverspec_with_infra) + + admin.projects = [serverspec_with_infra.infrastructure.project] + is_expected.to permit(admin, serverspec_with_infra) + end + + it 'should deny not admin user' do + normal.projects = [serverspec_with_infra.infrastructure.project] + is_expected.not_to permit(normal, serverspec_with_infra) + master.projects = [serverspec_with_infra.infrastructure.project] + is_expected.not_to permit(master, serverspec_with_infra) + end + end + + context "serverspec doesn't have infra" do + it 'should grant only master and admin user' do + is_expected.to permit(master_admin, serverspec_without_infra) + is_expected.not_to permit(master, serverspec_without_infra) + is_expected.not_to permit(admin, serverspec_without_infra) + is_expected.not_to permit(normal, serverspec_without_infra) + end + end + end + end +end From 44df23e7ec1da54a51ec5e398bc91132c7e1172e Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 10 Jan 2017 12:56:35 +0900 Subject: [PATCH 055/133] Fixed test for severtest scope in Application controllers, models, and jobs --- .../infrastructures/ec2-tabpane.js | 6 +- app/controllers/dishes_controller.rb | 10 +- app/controllers/nodes_controller.rb | 4 +- app/controllers/servertests_controller.rb | 28 ++-- app/jobs/servertest_job.rb | 2 +- app/models/dish_servertest.rb | 2 +- app/models/resource.rb | 6 +- app/views/vue/_ec2_tabpane.html.erb | 2 +- spec/controllers/dishes_controller_spec.rb | 14 +- .../ec2_instances_controller_spec.rb | 4 +- spec/controllers/nodes_controller_spec.rb | 10 +- .../servertests_controller_spec.rb | 132 +++++++++--------- spec/factories.rb | 7 +- spec/jobs/servertest_job_spec.rb | 18 +-- spec/models/node_spec.rb | 12 +- spec/models/resource_servertest_spec.rb | 2 +- spec/models/resource_spec.rb | 28 ++-- spec/models/servertest_result_detail_spec.rb | 2 +- spec/models/servertest_result_spec.rb | 2 +- spec/models/servertest_schedule_spec.rb | 2 +- spec/models/servertest_spec.rb | 20 +-- spec/policies/servertest_policy_spec.rb | 34 ++--- 22 files changed, 174 insertions(+), 173 deletions(-) diff --git a/app/assets/javascripts/infrastructures/ec2-tabpane.js b/app/assets/javascripts/infrastructures/ec2-tabpane.js index 4aa23a5fd..d012fad0c 100644 --- a/app/assets/javascripts/infrastructures/ec2-tabpane.js +++ b/app/assets/javascripts/infrastructures/ec2-tabpane.js @@ -602,15 +602,15 @@ module.exports = Vue.extend({ }, cook_status_class: function () { return this._label_class(this.cook_status); }, - serverspec_status_class: function () { return this._label_class(this.serverspec_status); }, + serverspec_status_class: function () { return this._label_class(this.servertest_status); }, update_status_class: function () { return this._label_class(this.update_status); }, cook_status: function () { return this.capitalize(this.ec2.info.cook_status.value); }, - serverspec_status: function () { return this.capitalize(this.ec2.info.serverspec_status.value); }, + servertest_status: function () { return this.capitalize(this.ec2.info.servertest_status.value); }, update_status: function () { return this.capitalize(this.ec2.info.update_status.value); }, cook_time: function () { return this.cook_status === 'UnExecuted' ? '' : toLocaleString(this.ec2.info.cook_status.updated_at);}, - serverspec_time: function () { return this.serverspec_status === 'UnExecuted' ? '' : toLocaleString(this.ec2.info.serverspec_status.updated_at);}, + serverspec_time: function () { return this.servertest_status === 'UnExecuted' ? '' : toLocaleString(this.ec2.info.servertest_status.updated_at);}, update_time: function () { return this.update_status === 'UnExecuted' ? '' : toLocaleString(this.ec2.info.update_status.updated_at);}, runlist_empty: function () { return _.isEmpty(this.ec2.runlist); }, diff --git a/app/controllers/dishes_controller.rb b/app/controllers/dishes_controller.rb index 6504b4bd4..a2092bc8c 100644 --- a/app/controllers/dishes_controller.rb +++ b/app/controllers/dishes_controller.rb @@ -36,7 +36,7 @@ def index # GET /dishes/1 def show - @selected_serverspecs = @dish.serverspecs + @selected_serverspecs = @dish.servertests @runlist = @dish.runlist render partial: 'show' @@ -44,13 +44,13 @@ def show # GET /dishes/1/edit def edit - @global_serverspecs = Serverspec.global + @global_serverspecs = Servertest.global @cookbooks = ChefAPI.index(:cookbook).keys @roles = ChefAPI.index(:role).map(&:name) @runlist = @dish.runlist - @selected_serverspecs = @dish.serverspecs + @selected_serverspecs = @dish.servertests render partial: 'edit' end @@ -58,12 +58,12 @@ def edit # PUT /dishes/1 def update runlist = params[:runlist] || [] - serverspec_ids = params[:serverspecs] || [] + servertest_ids = params[:servertests] || [] # TODO error handling @dish.update( runlist: runlist, - serverspec_ids: serverspec_ids, + servertest_ids: servertest_ids, status: nil ) diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb index 99da629c5..2463e50a2 100644 --- a/app/controllers/nodes_controller.rb +++ b/app/controllers/nodes_controller.rb @@ -105,7 +105,7 @@ def show @info = {} status = resource.status @info[:cook_status] = status.cook - @info[:serverspec_status] = status.servertest + @info[:servertest_status] = status.servertest @info[:update_status] = status.yum @dishes = Dish.valid_dishes(@infra.project_id) @@ -415,7 +415,7 @@ def cook_node(infrastructure, physical_id, whyrun) ws.push_as_json({v: true}) if r.dish_id # if resource has dish - ServerspecJob.perform_now(physical_id, @infra.id, current_user.id) + ServertestJob.perform_now(physical_id, @infra.id, current_user.id) end end diff --git a/app/controllers/servertests_controller.rb b/app/controllers/servertests_controller.rb index e6e4e7dbf..cb13af58f 100644 --- a/app/controllers/servertests_controller.rb +++ b/app/controllers/servertests_controller.rb @@ -42,22 +42,22 @@ def new # GET /serverspecs/1 def show - render text: @serverspec.value + render text: @servertest.value end # POST /serverspecs/1 def update - if @servertest.update(global_serverspec_params) + if @servertest.update(global_servertest_params) redirect_to servertests_path, notice: I18n.t('serverspecs.msg.updated') else - flash.now[:alert] = @servertest.errors[:value] if @serverspec.errors[:value] + flash.now[:alert] = @servertest.errors[:value] if @servertest.errors[:value] render action: 'edit' end end - # POST /serverspecs + # POST /servertests def create - @servertest = Servertest.new(global_serverspec_params) + @servertest = Servertest.new(global_servertest_params) infra_id = @servertest.infrastructure_id @@ -100,26 +100,26 @@ def select infra_id = params.require(:infra_id) resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) - @selected_serverspec_ids = resource.all_serverspec_ids + @selected_servertest_ids = resource.all_servertest_ids serverspecs = Servertest.for_infra_serverspec(infra_id) - @individual_serverspecs, @global_serverspecs = serverspecs.partition{|spec| spec.infrastructure_id } + @individual_servertests, @global_servertests = serverspecs.partition{|spec| spec.infrastructure_id } node = Node.new(physical_id) @is_available_auto_generated = node.have_auto_generated - @serverspec_schedule = ServertestSchedule.find_or_create_by(physical_id: physical_id) + @servertest_schedule = ServertestSchedule.find_or_create_by(physical_id: physical_id) end - # GET /serverspecs/results + # GET /servertests/results def results physical_id = params.require(:physical_id) infra_id = params.require(:infra_id) resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) - @serverspec_results = resource.servertest_results.order("created_at desc") + @servertest_results = resource.servertest_results.order("created_at desc") respond_to do |format| - format.json { render json: @serverspec_results.as_json(only: [:id, :status, :message, :created_at, :category], + format.json { render json: @servertest_results.as_json(only: [:id, :status, :message, :created_at, :category], include: [{servertest_result_details: {only: [:id]}},{servertests: {only: [:name, :category]}}, {resource: {only: [:physical_id]}} ]) } end end @@ -189,7 +189,7 @@ def schedule infra_id = params.require(:infra_id) schedule = params.require(:schedule).permit(:enabled, :frequency, :day_of_week, :time) - ss = ServerspecSchedule.find_by(physical_id: physical_id) + ss = ServertestSchedule.find_by(physical_id: physical_id) ss.update_attributes!(schedule) if ss.enabled? @@ -208,8 +208,8 @@ def set_servertest @servertest = Servertest.find(params.require(:id)) end - def global_serverspec_params - params.require(:servertest).permit(:name, :description, :value, :category, :infrastructure_id) + def global_servertest_params + params.require(:servertest).permit(:name, :description, :value, :infrastructure_id, :category) end def have_infra? diff --git a/app/jobs/servertest_job.rb b/app/jobs/servertest_job.rb index c017d4b9f..e8163cf26 100644 --- a/app/jobs/servertest_job.rb +++ b/app/jobs/servertest_job.rb @@ -22,7 +22,7 @@ def perform(physical_id, infra_id, user_id, servertest_ids: nil, auto_generated: unless servertest_ids infra = Infrastructure.find(infra_id) resource = infra.resource(physical_id) - servertest_ids = resource.all_serverspec_ids + servertest_ids = resource.all_servertest_ids end @ws = WSConnector.new('notifications', User.find(user_id).ws_key) diff --git a/app/models/dish_servertest.rb b/app/models/dish_servertest.rb index 0ee20d561..4ec9b2b2a 100644 --- a/app/models/dish_servertest.rb +++ b/app/models/dish_servertest.rb @@ -8,5 +8,5 @@ class DishServertest < ActiveRecord::Base belongs_to :dish, dependent: :destroy - belongs_to :serverstest, dependent: :destroy + belongs_to :servertest, dependent: :destroy end diff --git a/app/models/resource.rb b/app/models/resource.rb index 114a822b3..4c79c550c 100644 --- a/app/models/resource.rb +++ b/app/models/resource.rb @@ -30,13 +30,13 @@ class Resource < ActiveRecord::Base # 自身の持つ Serverpsec と、自身が持つ Dish に紐づく Serverspec の和集合を返す。 # @XXX ActiveRecord::Relation を返したい。だけど arel の union が relation を返してくれなくてうまくいかない。 # @return [Array] - def all_serverspecs + def all_servertests self.servertests | (self.dish.try(:servertests) || []) end # XXX: パフォーマンスがきになる. all_serverspecs のほうが relation を返せば pluck が使える - def all_serverspec_ids - all_serverspecs.map{|x|x.id} + def all_servertest_ids + all_servertests.map{|x|x.id} end def initialize_statuses diff --git a/app/views/vue/_ec2_tabpane.html.erb b/app/views/vue/_ec2_tabpane.html.erb index ad5389743..da005ba1c 100644 --- a/app/views/vue/_ec2_tabpane.html.erb +++ b/app/views/vue/_ec2_tabpane.html.erb @@ -251,7 +251,7 @@
    <%= t 'nodes.latest_serverspec_status' %>
    - +
    diff --git a/spec/controllers/dishes_controller_spec.rb b/spec/controllers/dishes_controller_spec.rb index 9e15c2449..a41e397ba 100644 --- a/spec/controllers/dishes_controller_spec.rb +++ b/spec/controllers/dishes_controller_spec.rb @@ -65,7 +65,7 @@ end it 'should assigns @selected_serverspecs' do - expect(assigns[:selected_serverspecs]).to eq dish.serverspecs + expect(assigns[:selected_serverspecs]).to eq dish.servertests end it 'should assign @runlist' do @@ -87,7 +87,7 @@ end it 'should assign @global_serverspecs' do - expect(assigns[:global_serverspecs]).to eq Serverspec.global + expect(assigns[:global_serverspecs]).to eq Servertest.global end it 'should assign @cookbooks' do @@ -103,7 +103,7 @@ end it 'should assign @selected_serverspecs' do - expect(assigns[:selected_serverspecs]).to eq dish.serverspecs + expect(assigns[:selected_serverspecs]).to eq dish.servertests end it do @@ -112,9 +112,9 @@ end describe '#update' do - let(:serverspec){create(:serverspec)} + let(:servertest){create(:servertest)} let(:runlist){['hoge', 'fuga']} - let(:update_request){patch :update, id: dish.id, runlist: runlist, serverspecs: [serverspec.id]} + let(:update_request){patch :update, id: dish.id, runlist: runlist, servertests: [servertest.id]} context 'when valid params' do before do @@ -135,8 +135,8 @@ expect(subject.runlist).to eq runlist end - it 'serverspec should be equaled' do - expect(subject.serverspecs).to eq [serverspec] + it 'servertest should be equaled' do + expect(subject.servertests).to eq [servertest] end it 'status should be nil' do diff --git a/spec/controllers/ec2_instances_controller_spec.rb b/spec/controllers/ec2_instances_controller_spec.rb index cf3a9b22f..d09ce3f01 100644 --- a/spec/controllers/ec2_instances_controller_spec.rb +++ b/spec/controllers/ec2_instances_controller_spec.rb @@ -92,7 +92,7 @@ context 'when status failed' do before do - st = resource.status.serverspec + st = resource.status.servertest st.failed! req end @@ -104,7 +104,7 @@ ['success', 'pending', 'un_executed'].each do |status| context "when status #{status}" do before do - st = resource.status.serverspec + st = resource.status.servertest st.value = status st.save! req diff --git a/spec/controllers/nodes_controller_spec.rb b/spec/controllers/nodes_controller_spec.rb index 1a7ea6d30..e5832b39c 100644 --- a/spec/controllers/nodes_controller_spec.rb +++ b/spec/controllers/nodes_controller_spec.rb @@ -54,7 +54,7 @@ available: [], }} let(:cook_status){resource.status.cook} - let(:serverspec_status){resource.status.serverspec} + let(:servertest_status){resource.status.servertest} let(:yum_status){resource.status.yum} before do allow_any_instance_of(Infrastructure).to receive(:instance).and_return(instance) @@ -147,7 +147,7 @@ it 'should assigns @info' do expect(assigns[:info]).to be_a Hash expect(assigns[:info][:cook_status]).to eq cook_status - expect(assigns[:info][:serverspec_status]).to eq serverspec_status + expect(assigns[:info][:servertest_status]).to eq servertest_status expect(assigns[:info][:update_status]).to eq yum_status end @@ -410,9 +410,9 @@ def show expect(JSON[response.body]['message']).to be nil end - it 'should update cook and serverspec status' do + it 'should update cook and servertest status' do expect(resource.status.cook.value).to eq 'un_executed' - expect(resource.status.serverspec.value).to eq 'un_executed' + expect(resource.status.servertest.value).to eq 'un_executed' end it 'resource should have dish' do @@ -457,7 +457,7 @@ def show context 'when success' do before do expect_any_instance_of(Node).to receive(:cook).and_yield('hoge') - expect(ServerspecJob).to receive(:perform_now) + expect(ServertestJob).to receive(:perform_now) req end should_be_success diff --git a/spec/controllers/servertests_controller_spec.rb b/spec/controllers/servertests_controller_spec.rb index 90936cdb6..ea4bedbcf 100644 --- a/spec/controllers/servertests_controller_spec.rb +++ b/spec/controllers/servertests_controller_spec.rb @@ -15,7 +15,7 @@ let(:svrsp_desc){'description'} let(:svrsp_value){'value'} let(:svrsp_category){'category'} - let(:servertest){attributes_for(:servertest, name: svrsp_name, description: svrsp_desc, value: svrsp_value, infrastructure_id: infrastructure_id)} + let(:servertest){attributes_for(:servertest, name: svrsp_name, description: svrsp_desc, value: svrsp_value, infrastructure_id: infrastructure_id, category: :serverspec)} describe '#index' do let(:req){get :index, infrastructure_id: infrastructure.id} @@ -47,7 +47,7 @@ end it 'should assign @servertests where infra id = infra.id(from url)' do - expect(assigns[:servertests]).to be_all{|servertest|serverspec.infrastructure_id == infrastructure.id} + expect(assigns[:servertests]).to be_all{|servertest|servertest.infrastructure_id == infrastructure.id} end end end # end of describe #index @@ -64,14 +64,14 @@ expect(response).to render_template :new end - it 'serverspec.value should be pre-set' do - expect(assigns(:serverspec).value).to eq("require 'serverspec_helper'\n\n") + xit 'servertest.value should be pre-set' do + expect(assigns(:servertest).value).to eq("require 'serverspec_helper'\n\n") end end context 'when accessed without infrastructure_id' do - it 'should assign serverspec without infrastracture_id' do - expect(assigns(:serverspec).infrastructure_id).to be_nil + it 'should assign servertest without infrastracture_id' do + expect(assigns(:servertest).infrastructure_id).to be_nil end end @@ -79,66 +79,66 @@ let(:get_new){get :new, infrastructure_id: infrastructure.id} it 'should assign severspec with infrastracture_id' do - expect(assigns(:serverspec).infrastructure_id).to_not be_nil + expect(assigns(:servertest).infrastructure_id).to_not be_nil end end end # end of describe #new describe 'GET #show' do - let(:serverspec){create(:serverspec)} + let(:servertest){create(:servertest)} before do - get :show, id: serverspec.id + get :show, id: servertest.id end context 'when accessed show' do it 'should render text server.value' do - expect(response.body).to eq serverspec.value + expect(response.body).to eq servertest.value end end end describe 'POST #create' do let(:infrastructure_id){nil} - let(:create_request){post :create, serverspec: serverspec} + let(:create_request){post :create, servertest: servertest} context 'when valid params' do before do create_request end - it 'should assign a new serverspec and save' do - expect(assigns(:serverspec)).to be_a(Serverspec) - expect(assigns(:serverspec)).to be_persisted + it 'should assign a new servertest and save' do + expect(assigns(:servertest)).to be_a(Servertest) + expect(assigns(:servertest)).to be_persisted end - it 'should redirect to serverspacs_path with infra_id false' do - expect(response).to redirect_to(serverspecs_path(infrastructure_id: assigns(:serverspec).infrastructure_id)) + it 'should redirect to servertests_path with infra_id false' do + expect(response).to redirect_to(servertests_path(infrastructure_id: assigns(:servertest).infrastructure_id)) end context 'when infrastructure_id true' do let(:infrastructure_id){infrastructure.id} - it 'serverspce.infra_id should not be nil' do - expect(assigns(:serverspec).infrastructure_id).to eq(infrastructure_id) + it 'serverspec.infra_id should not be nil' do + expect(assigns(:servertest).infrastructure_id).to eq(infrastructure_id) end end context 'when infrastructure_id false' do - it 'serverspec.infra_id should be nil' do - expect(assigns(:serverspec).infrastructure_id).to be_nil + it 'servertest.infra_id should be nil' do + expect(assigns(:servertest).infrastructure_id).to be_nil end end end context 'when invalid params' do before do - allow_any_instance_of(Serverspec).to receive(:save!).and_raise + allow_any_instance_of(Servertest).to receive(:save!).and_raise create_request end it 'should not save' do - expect(assigns(:serverspec)).not_to be_persisted + expect(assigns(:servertest)).not_to be_persisted end it 'should render #new' do @@ -148,9 +148,9 @@ end # end of describe post #create describe 'PATCH #update' do - let(:new_serverspec){create(:serverspec)} + let(:new_serverspec){create(:servertest)} let(:infrastructure_id){nil} - let(:update_request){s = serverspec.dup; s.delete(:infrastructure_id); patch :update, id: new_serverspec.id, serverspec: s} + let(:update_request){s = servertest.dup; s.delete(:infrastructure_id); patch :update, id: new_serverspec.id, servertest: s} context 'when valid params' do before do @@ -158,7 +158,7 @@ end it 'should update finely' do - s = Serverspec.find(new_serverspec.id) + s = Servertest.find(new_serverspec.id) expect(s.name).to eq(svrsp_name) expect(s.description).to eq(svrsp_desc) expect(s.value).to eq(svrsp_value) @@ -167,7 +167,7 @@ context 'when invalid params' do before do - allow_any_instance_of(Serverspec).to receive(:update).and_return(false) + allow_any_instance_of(Servertest).to receive(:update).and_return(false) update_request end @@ -200,23 +200,23 @@ end describe 'DELETE #destroy' do - let(:new_serverspec){create(:serverspec)} + let(:new_serverspec){create(:servertest)} let(:delete_request){delete :destroy, id: new_serverspec.id} before do delete_request end - subject{Serverspec.find(new_serverspec.id)} + subject{Servertest.find(new_serverspec.id)} - context 'when serverspec is deleted' do + context 'when servertest is deleted' do it 'should raise an error' do expect{subject}.to raise_error ActiveRecord::RecordNotFound end it 'should redirect' do infra_id = new_serverspec.infrastructure_id - expect(response).to redirect_to(serverspecs_path(infrastructure_id: infra_id)) + expect(response).to redirect_to(servertests_path(infrastructure_id: infra_id)) end end end #end of delete # destroy @@ -224,10 +224,10 @@ describe '#select' do shared_context 'get_page' do |bool| let(:infra){create(:infrastructure)} - let(:specs){create_list(:serverspec, 3, infrastructure: infra)} + let(:specs){create_list(:servertest, 3, infrastructure: infra, category: 1)} let(:physical_id){SecureRandom.base64(10)} - let(:dish){create(:dish, serverspecs: [create(:serverspec)])} - let(:resource){create(:resource, physical_id: physical_id, dish: dish, infrastructure: infra, serverspecs: [create(:serverspec)])} + let(:dish){create(:dish, servertests: [create(:servertest)])} + let(:resource){create(:resource, physical_id: physical_id, dish: dish, infrastructure: infra, servertests: [create(:servertest)])} before do specs @@ -244,24 +244,24 @@ subject {response} - it 'render serverspecs/_select' do - is_expected.to render_template('serverspecs/select') + it 'render servertests/_select' do + is_expected.to render_template('servertests/select') end it 'should assign @selected_serverspec_ids' do - expect(assigns[:selected_serverspec_ids]).to match_array(dish.serverspec_ids | resource.serverspec_ids) + expect(assigns[:selected_servertest_ids]).to match_array(dish.servertest_ids | resource.servertest_ids) end - it 'assigns @individual_serverspecs' do - expect(assigns[:individual_serverspecs]).to match_array(specs) + it 'assigns @individual_servertests' do + expect(assigns[:individual_servertests]).to match_array(specs) end - it 'assigns @global_serverspecs' do - expect(assigns[:global_serverspecs]).to match_array([]) + it 'assigns @global_servertests' do + expect(assigns[:global_servertests]).to match_array([]) end - it 'assigns @serverspec_schedule' do - expect(assigns[:serverspec_schedule]).to be_a ServerspecSchedule + it 'assigns @servertest_schedule' do + expect(assigns[:servertest_schedule]).to be_a ServertestSchedule end end @@ -283,29 +283,29 @@ end describe '#results' do - let(:specs){create_list(:serverspec, 3, infrastructure: infrastructure)} + let(:specs){create_list(:servertest, 3, infrastructure: infrastructure)} let(:physical_id){SecureRandom.base64(10)} - let(:resource){create(:resource, physical_id: physical_id, infrastructure: infrastructure, serverspecs: specs)} + let(:resource){create(:resource, physical_id: physical_id, infrastructure: infrastructure, servertests: specs)} before do resource # exec create resource - create(:serverspec_result, serverspecs: specs, resource: resource) + create(:servertest_result, servertests: specs, resource: resource) get :results, physical_id: physical_id, infra_id: infrastructure.id, format: 'json' # send HTTP request end should_be_success - it 'should assign @serverspec_results' do - expect(assigns[:serverspec_results]).to eq resource.serverspec_results + it 'should assign @servertest_results' do + expect(assigns[:servertest_results]).to eq resource.servertest_results end end - describe '#run' do + describe '#run_serverspec' do let(:infra){create(:infrastructure)} let(:physical_id){SecureRandom.base64(10)} - let(:serverspecs){create_list(:serverspec, 3)} + let(:servertests){create_list(:servertest, 3)} let(:resource){create(:resource, physical_id: physical_id, infrastructure: infra)} - let(:serverspec_ids){serverspecs.map(&:id)} + let(:servertest_ids){servertests.map(&:id)} let(:failure_count){0} let(:pending_count){0} let(:status_text){'success'} @@ -314,20 +314,20 @@ status: true, status_text: status_text, }} - let(:req){post :run, physical_id: physical_id, infra_id: infra.id, serverspec_ids: serverspec_ids} + let(:req){post :run_serverspec, physical_id: physical_id, infra_id: infra.id, servertest_ids: servertest_ids} before do resource - allow(ServerspecJob).to receive(:perform_now).and_return(resp) + allow(ServertestJob).to receive(:perform_now).and_return(resp) end context 'when selected auto generated' do - let(:serverspec_ids){serverspecs.map(&:id).push('-1')} + let(:servertest_ids){servertests.map(&:id).push('-1')} it 'should call run_serverspec with auto generated flag true' do - expect(ServerspecJob).to receive(:perform_now).with( + expect(ServertestJob).to receive(:perform_now).with( physical_id, infra.id.to_param, kind_of(Integer), - serverspec_ids: serverspecs.map{|x|x.id.to_s}, auto_generated: true + servertest_ids: servertests.map{|x|x.id.to_s}, auto_generated: true ) req end @@ -335,18 +335,18 @@ context 'when not selected auto generated' do it 'should call run_serverspec with auto generated flag false' do - expect(ServerspecJob).to receive(:perform_now).with( + expect(ServertestJob).to receive(:perform_now).with( physical_id, infra.id.to_param, kind_of(Integer), - serverspec_ids: serverspecs.map{|x|x.id.to_s}, auto_generated: false + servertest_ids: servertests.map{|x|x.id.to_s}, auto_generated: false ) req end end - context 'when Serverspec command is failed' do + context 'when Servertest command is failed' do let(:err_msg){'This is Error <3'} before do - allow(ServerspecJob).to receive(:perform_now).and_raise(err_msg) + allow(ServertestJob).to receive(:perform_now).and_raise(err_msg) req end should_be_failure @@ -356,19 +356,19 @@ end end - context 'when serverspec result is fail' do + context 'when servertest result is fail' do let(:status_text){'failed'} before{req} should_be_success end - context 'when serverspec result is pending' do + context 'when servertest result is pending' do let(:status_text){'pending'} before{req} should_be_success end - context 'when serverspec result is success' do + context 'when servertest result is success' do let(:status_text){'success'} before{req} should_be_success @@ -387,7 +387,7 @@ before do allow(RDS).to receive(:new).with(infrastructure, physical_id).and_return(rds) - expect(Serverspec).to receive(:create_rds).with(rds, username, password, infra_id.to_s, database) + expect(Servertest).to receive(:create_rds).with(rds, username, password, infra_id.to_s, database) request_createrds end @@ -403,10 +403,10 @@ end describe "#schedule" do - let(:serverspec_schedule) { create(:serverspec_schedule) } - let(:physical_id) { serverspec_schedule.physical_id } + let(:servertest_schedule) { create(:servertest_schedule) } + let(:physical_id) { servertest_schedule.physical_id } let(:infra_id) { infrastructure.id } - let(:schedule) { attributes_for(:serverspec_schedule) } + let(:schedule) { attributes_for(:servertest_schedule) } let(:req){post(:schedule, {physical_id: physical_id, infra_id: infra_id, schedule: schedule})} before do diff --git a/spec/factories.rb b/spec/factories.rb index e6bc792ce..7538c2052 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -16,7 +16,7 @@ version "MyString" details "MyString" end - + factory :recurring_date do operation_duration_id "MyString" repeats 1 @@ -37,7 +37,7 @@ project end - factory :serverspec_result do + factory :servertest_result do resource status :success message 'serverspec success' @@ -96,10 +96,11 @@ master true end - factory :serverspec do + factory :servertest do infrastructure name 'hoge' value 'fuga' description 'piyo' + category :awspec end end diff --git a/spec/jobs/servertest_job_spec.rb b/spec/jobs/servertest_job_spec.rb index ea199e398..f370ce74b 100644 --- a/spec/jobs/servertest_job_spec.rb +++ b/spec/jobs/servertest_job_spec.rb @@ -12,8 +12,8 @@ describe '#perform' do let(:infra){create(:infrastructure)} let(:physical_id){SecureRandom.base64(10)} - let(:serverspecs){create_list(:serverspec, 3)} - let(:resource){create(:resource, physical_id: physical_id, infrastructure: infra, serverspecs: serverspecs)} + let(:servertests){create_list(:servertest, 3)} + let(:resource){create(:resource, physical_id: physical_id, infrastructure: infra, servertests: servertests)} let(:user){create(:user)} let(:status_text){'success'} let(:resp){{ @@ -21,10 +21,10 @@ message: 'Success!', status: status_text != 'failed', }} - let(:job){ServerspecJob.perform_now(physical_id, infra.id, user.id)} + let(:job){ServertestJob.perform_now(physical_id, infra.id, user.id)} before do - allow_any_instance_of(Node).to receive(:run_serverspec).with(infra.id, serverspecs.map(&:id), false).and_return(resp) + allow_any_instance_of(Node).to receive(:run_serverspec).with(infra.id, servertests.map(&:id), false).and_return(resp) resource end @@ -32,14 +32,14 @@ expect(job).to eq resp end - context 'when received serverspec_ids' do - let(:altr_serverspecs){create_list(:serverspec, 4)} - it 'serverspec_ids of resource should be update' do + context 'when received servertest_ids' do + let(:altr_serverspecs){create_list(:servertest, 4)} + it 'servertest_ids of resource should be update' do ids = altr_serverspecs.map(&:id) allow_any_instance_of(Node).to receive(:run_serverspec).with(infra.id, ids, false).and_return(resp) - ServerspecJob.perform_now(physical_id, infra.id, user.id, serverspec_ids: ids) + ServertestJob.perform_now(physical_id, infra.id, user.id, servertest_ids: ids) resource.reload - expect(resource.serverspecs).to eq altr_serverspecs + expect(resource.servertests).to eq altr_serverspecs end end diff --git a/spec/models/node_spec.rb b/spec/models/node_spec.rb index cf1b08e7d..55ca8f3c3 100644 --- a/spec/models/node_spec.rb +++ b/spec/models/node_spec.rb @@ -117,7 +117,7 @@ subject{ Node.new(physical_id) } let(:infra){create(:infrastructure)} let(:resource){create(:resource, infrastructure: infra)} - let(:serverspec){create(:serverspec)} + let(:servertest){create(:servertest)} let(:physical_id){resource.physical_id} before do @@ -143,14 +143,14 @@ end it 'return hash' do - serverspecs = [serverspec.id] + serverspecs = [servertest.id] expect(subject.run_serverspec(infra.id, serverspecs, false)).to be_kind_of(Hash) end it 'should update status' do - serverspecs = [serverspec.id] + serverspecs = [servertest.id] subject.run_serverspec(infra.id, serverspecs, false) - expect(resource.status.serverspec.success?).to be true + expect(resource.status.servertest.success?).to be true end context 'when command fail' do @@ -159,9 +159,9 @@ end it 'should update status' do - serverspecs = [serverspec.id] + serverspecs = [servertest.id] expect{subject.run_serverspec(infra.id, serverspecs, false)}.to raise_error StandardError - expect(resource.status.serverspec.failed?).to be true + expect(resource.status.servertest.failed?).to be true end end end diff --git a/spec/models/resource_servertest_spec.rb b/spec/models/resource_servertest_spec.rb index 347134a71..a44e50626 100644 --- a/spec/models/resource_servertest_spec.rb +++ b/spec/models/resource_servertest_spec.rb @@ -10,6 +10,6 @@ RSpec.describe ResourceServertest, type: :model do it "is valid with valid attributes" do - expect(ResourceServerspec.new).to be_valid + expect(ResourceServertest.new).to be_valid end end diff --git a/spec/models/resource_spec.rb b/spec/models/resource_spec.rb index 0b6891072..9c57e6844 100644 --- a/spec/models/resource_spec.rb +++ b/spec/models/resource_spec.rb @@ -9,37 +9,37 @@ require_relative '../spec_helper' RSpec.describe Resource, type: :model do - describe '#all_serverspecs' do - subject{resource.all_serverspecs} + describe '#all_servertests' do + subject{resource.all_servertests} context 'when have dish' do - let(:dish){build_stubbed(:dish, serverspecs: [build_stubbed(:serverspec)])} + let(:dish){build_stubbed(:dish, servertests: [build_stubbed(:servertest)])} # XXX: これとか FactoryGirl で定義したい - let(:resource){build_stubbed(:resource, dish: dish, serverspecs: [build_stubbed(:serverspec)])} + let(:resource){build_stubbed(:resource, dish: dish, servertests: [build_stubbed(:servertest)])} - it {is_expected.to match_array resource.serverspecs | resource.dish.serverspecs} + it {is_expected.to match_array resource.servertests | resource.dish.servertests} end context 'when not have dish' do - let(:resource){build_stubbed(:resource, serverspecs: [build_stubbed(:serverspec)])} - it {is_expected.to match_array resource.serverspecs} + let(:resource){build_stubbed(:resource, servertests: [build_stubbed(:servertest)])} + it {is_expected.to match_array resource.servertests} end end - describe '#all_serverspec_ids' do - subject{resource.all_serverspec_ids} + describe '#all_servertest_ids' do + subject{resource.all_servertest_ids} context 'when have dish' do - let(:dish){build_stubbed(:dish, serverspecs: [build_stubbed(:serverspec)])} - let(:resource){build_stubbed(:resource, dish: dish, serverspecs: [build_stubbed(:serverspec)])} + let(:dish){build_stubbed(:dish, servertests: [build_stubbed(:servertest)])} + let(:resource){build_stubbed(:resource, dish: dish, servertests: [build_stubbed(:servertest)])} - it {is_expected.to match_array resource.serverspec_ids | resource.dish.serverspec_ids} + it {is_expected.to match_array resource.servertest_ids | resource.dish.servertest_ids} end context 'when not have dish' do - let(:resource){build_stubbed(:resource, serverspecs: [build_stubbed(:serverspec)])} + let(:resource){build_stubbed(:resource, servertests: [build_stubbed(:servertest)])} - it {is_expected.to match_array resource.serverspec_ids} + it {is_expected.to match_array resource.servertest_ids} end end end diff --git a/spec/models/servertest_result_detail_spec.rb b/spec/models/servertest_result_detail_spec.rb index 14f316a19..ae378db0a 100644 --- a/spec/models/servertest_result_detail_spec.rb +++ b/spec/models/servertest_result_detail_spec.rb @@ -10,6 +10,6 @@ RSpec.describe ServertestResultDetail, type: :model do it "is valid with valid attributes" do - expect(ServerspecResultDetail.new).to be_valid + expect(ServertestResultDetail.new).to be_valid end end diff --git a/spec/models/servertest_result_spec.rb b/spec/models/servertest_result_spec.rb index 4928a4332..d30e1a036 100644 --- a/spec/models/servertest_result_spec.rb +++ b/spec/models/servertest_result_spec.rb @@ -10,6 +10,6 @@ RSpec.describe ServertestResult, type: :model do it "is valid with valid attributes" do - expect(ServerspecResult.new).to be_valid + expect(ServertestResult.new).to be_valid end end diff --git a/spec/models/servertest_schedule_spec.rb b/spec/models/servertest_schedule_spec.rb index bdc772f24..bb52d46df 100644 --- a/spec/models/servertest_schedule_spec.rb +++ b/spec/models/servertest_schedule_spec.rb @@ -9,7 +9,7 @@ require_relative '../spec_helper' RSpec.describe ServertestSchedule, type: :model do - let(:schedule) { build_stubbed(:serverspec_schedule) } + let(:schedule) { build_stubbed(:servertest_schedule) } describe "#next_run" do it 'should return future time' do diff --git a/spec/models/servertest_spec.rb b/spec/models/servertest_spec.rb index 7a892a03d..617e1aaaa 100644 --- a/spec/models/servertest_spec.rb +++ b/spec/models/servertest_spec.rb @@ -10,24 +10,24 @@ # TODO: refactor describe Servertest, type: :model do - let(:klass){Serverspec} + let(:klass){Servertest} describe 'with validation' do describe 'column value' do - let(:serverspec){build(:serverspec)} + let(:servertest){build(:servertest)} it 'should be ruby code' do - serverspec.value = 'invalid as ruby code{{{' - expect(serverspec.save).to be false - serverspec.value = 'valid as ruby code' - expect(serverspec.save).to be true + servertest.value = 'invalid as ruby code{{{' + expect(servertest.save).to be false + servertest.value = 'valid as ruby code' + expect(servertest.save).to be true end end end before(:each) do - klass.create(infrastructure_id: nil, name: 'recipe_apache2', value: 'code hoge', category: 1) - klass.create(infrastructure_id: 1, name: 'for_infra1', value: 'code fuga', category: 2) - klass.create(infrastructure_id: 2, name: 'for_infra2', value: 'code piyo', category: 1) + klass.create(infrastructure_id: nil, name: 'recipe_apache2', value: 'code hoge', category: :serverspec) + klass.create(infrastructure_id: 1, name: 'for_infra1', value: 'code fuga', category: :awspec) + klass.create(infrastructure_id: 2, name: 'for_infra2', value: 'code piyo', category: :awspec) end it {is_expected.to respond_to(:name)} @@ -62,7 +62,7 @@ pass = 'passwd' infrastructure_id = 1 - it 'new Serverspec instance' do + it 'new Servertest instance' do expect(klass.create_rds(rds, user, pass, infrastructure_id)).to be_kind_of klass end end diff --git a/spec/policies/servertest_policy_spec.rb b/spec/policies/servertest_policy_spec.rb index e44a8555d..e6b5979da 100644 --- a/spec/policies/servertest_policy_spec.rb +++ b/spec/policies/servertest_policy_spec.rb @@ -16,22 +16,22 @@ let(:admin){ build_stubbed(:user, master: false, admin: true)} let(:normal){ build_stubbed(:user, master: false, admin: false)} - let(:serverspec_with_infra){ build_stubbed(:serverspec)} - let(:serverspec_without_infra){build_stubbed(:serverspec, infrastructure: nil)} + let(:servertest_with_infra){ build_stubbed(:servertest)} + let(:serverspec_without_infra){build_stubbed(:servertest, infrastructure: nil)} %i[index? show?].each do |action| permissions action do - context 'serverspec has infra' do + context 'servertest has infra' do it 'should grant allowed user' do - is_expected.not_to permit(normal, serverspec_with_infra) + is_expected.not_to permit(normal, servertest_with_infra) - normal.projects = [serverspec_with_infra.infrastructure.project] - is_expected.to permit(normal, serverspec_with_infra) + normal.projects = [servertest_with_infra.infrastructure.project] + is_expected.to permit(normal, servertest_with_infra) end end - context "serverspec doesn't have infra" do + context "servertest doesn't have infra" do it 'should grant all user' do is_expected.to permit(master_admin, serverspec_without_infra) is_expected.to permit(master, serverspec_without_infra) @@ -42,25 +42,25 @@ end end - %i[new? update? create? edit? destroy? select? run? create_for_rds? schedule?].each do |action| + %i[new? update? create? edit? destroy? select? run_serverspec? create_for_rds? schedule?].each do |action| permissions action do - context 'serverspec has infra' do + context 'servertest has infra' do it 'should grant allowed user' do - is_expected.not_to permit(admin, serverspec_with_infra) + is_expected.not_to permit(admin, servertest_with_infra) - admin.projects = [serverspec_with_infra.infrastructure.project] - is_expected.to permit(admin, serverspec_with_infra) + admin.projects = [servertest_with_infra.infrastructure.project] + is_expected.to permit(admin, servertest_with_infra) end it 'should deny not admin user' do - normal.projects = [serverspec_with_infra.infrastructure.project] - is_expected.not_to permit(normal, serverspec_with_infra) - master.projects = [serverspec_with_infra.infrastructure.project] - is_expected.not_to permit(master, serverspec_with_infra) + normal.projects = [servertest_with_infra.infrastructure.project] + is_expected.not_to permit(normal, servertest_with_infra) + master.projects = [servertest_with_infra.infrastructure.project] + is_expected.not_to permit(master, servertest_with_infra) end end - context "serverspec doesn't have infra" do + context "servertest doesn't have infra" do it 'should grant only master and admin user' do is_expected.to permit(master_admin, serverspec_without_infra) is_expected.not_to permit(master, serverspec_without_infra) From 59144ffa912820dea495a925ea37a3dddcc5eb04 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 10 Jan 2017 16:14:41 +1100 Subject: [PATCH 056/133] Fixed infrastructure destroy function spec that all dependent servertest --- app/models/infrastructure.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/infrastructure.rb b/app/models/infrastructure.rb index 81a875d9e..150b4d489 100644 --- a/app/models/infrastructure.rb +++ b/app/models/infrastructure.rb @@ -14,7 +14,7 @@ class Infrastructure < ActiveRecord::Base belongs_to :ec2_private_key, dependent: :delete has_many :infrastructure_logs, dependent: :delete_all - has_many :serverspecs, dependent: :delete_all + has_many :servertests, dependent: :delete_all has_many :resources, dependent: :destroy has_many :monitorings, dependent: :delete_all has_many :master_monitorings, through: :monitorings From 31943a4b0fa70aa48ed954c1eddd5c05868b05c5 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 10 Jan 2017 14:23:03 +0900 Subject: [PATCH 057/133] =?UTF-8?q?=20=E3=81=82=E3=81=91=E3=81=BE=E3=81=97?= =?UTF-8?q?=E3=81=A6=E3=81=8A=E3=82=81=E3=81=A7=E3=81=A8=E3=81=86=E3=81=94?= =?UTF-8?q?=E3=81=96=E3=81=84=E3=81=BE=E3=81=99=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/application.rb b/config/application.rb index a793598d0..66562c1bf 100644 --- a/config/application.rb +++ b/config/application.rb @@ -50,7 +50,7 @@ class Application < Rails::Application config.active_job.queue_adapter = :sidekiq # Version information - config.my_version = 'Version 1.23.0' + config.my_version = 'Version 1.25.0' config.browserify_rails.paths << /frontend\// end From 355d995f92ec817894a0b4950e15256d5a79e596 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 10 Jan 2017 14:25:55 +0900 Subject: [PATCH 058/133] happy new year 2017 --- app/controllers/app_settings_controller.rb | 2 +- app/controllers/application_controller.rb | 2 +- app/controllers/cf_templates_controller.rb | 2 +- app/controllers/clients_controller.rb | 2 +- app/controllers/concerns/controller_util.rb | 2 +- app/controllers/concerns/error_handler.rb | 2 +- app/controllers/concerns/infra_logger.rb | 2 +- app/controllers/dishes_controller.rb | 2 +- app/controllers/dishes_controller/validate.rb | 2 +- app/controllers/ec2_instances_controller.rb | 2 +- app/controllers/ec2_private_keys_controller.rb | 2 +- app/controllers/elb_controller.rb | 2 +- app/controllers/infrastructure_logs_controller.rb | 2 +- app/controllers/infrastructures_controller.rb | 2 +- app/controllers/key_pairs_controller.rb | 2 +- app/controllers/monitorings_controller.rb | 2 +- app/controllers/nodes_controller.rb | 2 +- app/controllers/project_parameters_controller.rb | 2 +- app/controllers/projects_controller.rb | 2 +- app/controllers/resources_controller.rb | 2 +- app/controllers/root_controller.rb | 2 +- app/controllers/server_status_controller.rb | 2 +- app/controllers/serverspecs_controller.rb | 2 +- app/controllers/snapshots_controller.rb | 2 +- app/controllers/template_builder_controller.rb | 2 +- app/controllers/users/sessions_controller.rb | 2 +- app/controllers/users_admin_controller.rb | 2 +- app/helpers/application_helper.rb | 2 +- app/helpers/cf_templates_helper.rb | 2 +- app/helpers/clients_helper.rb | 2 +- app/helpers/deploy_wizard_helper.rb | 2 +- app/helpers/dishes_helper.rb | 2 +- app/helpers/form_helper.rb | 2 +- app/helpers/infrastructures_helper.rb | 2 +- app/helpers/monitorings_helper.rb | 2 +- app/helpers/nodes_helper.rb | 2 +- app/helpers/notifications_helper.rb | 2 +- app/helpers/projects_helper.rb | 2 +- app/helpers/template_builders_helper.rb | 2 +- app/helpers/users_helper.rb | 2 +- app/helpers/vue_helper.rb | 2 +- app/jobs/delete_outdated_snapshots_job.rb | 2 +- app/jobs/operation_worker.rb | 2 +- app/jobs/periodic_serverspec_job.rb | 2 +- app/jobs/periodic_yum_job.rb | 2 +- app/jobs/server_state_worker.rb | 2 +- app/jobs/serverspec_job.rb | 2 +- app/jobs/snapshot_job.rb | 2 +- app/jobs/yum_job.rb | 2 +- app/models/app_setting.rb | 2 +- app/models/cf_template.rb | 2 +- app/models/chef_api.rb | 2 +- app/models/chef_server/deployment.rb | 2 +- app/models/client.rb | 2 +- app/models/cloud_provider.rb | 2 +- app/models/cloud_watch.rb | 2 +- app/models/concerns/cryptize.rb | 2 +- app/models/dish.rb | 2 +- app/models/dish_serverspec.rb | 2 +- app/models/ec2_instance.rb | 2 +- app/models/ec2_private_key.rb | 2 +- app/models/elb.rb | 2 +- app/models/infrastructure.rb | 2 +- app/models/infrastructure_log.rb | 2 +- app/models/key_pair.rb | 2 +- app/models/master_monitoring.rb | 2 +- app/models/monitoring.rb | 2 +- app/models/node.rb | 2 +- app/models/node/attribute.rb | 2 +- app/models/operation_duration.rb | 2 +- app/models/project.rb | 2 +- app/models/project_parameter.rb | 2 +- app/models/rds.rb | 2 +- app/models/recurring_date.rb | 2 +- app/models/resource.rb | 2 +- app/models/resource_serverspec.rb | 2 +- app/models/resource_status.rb | 2 +- app/models/s3.rb | 2 +- app/models/schedule.rb | 2 +- app/models/server_state.rb | 2 +- app/models/serverspec.rb | 2 +- app/models/serverspec_result.rb | 2 +- app/models/serverspec_result_detail.rb | 2 +- app/models/serverspec_schedule.rb | 2 +- app/models/snapshot.rb | 2 +- app/models/snapshot_schedule.rb | 2 +- app/models/stack.rb | 2 +- app/models/template_builder.rb | 2 +- app/models/template_builder/output.rb | 2 +- app/models/template_builder/parameter.rb | 2 +- app/models/template_builder/property.rb | 2 +- app/models/template_builder/resource.rb | 2 +- app/models/template_builder/resource/ec2.rb | 2 +- app/models/template_builder/resource/ec2/eip.rb | 2 +- app/models/template_builder/resource/ec2/instance.rb | 2 +- app/models/template_builder/resource/ec2/security_group.rb | 2 +- app/models/template_builder/resource/ec2/vpc.rb | 2 +- app/models/template_builder/resource/rds.rb | 2 +- app/models/template_builder/resource/rds/db_instance.rb | 2 +- app/models/template_builder/resource/s3/bucket.rb | 2 +- app/models/user.rb | 2 +- app/models/user_project.rb | 2 +- app/models/user_zabbix_server.rb | 2 +- app/models/ws_connector.rb | 2 +- app/models/yum_schedule.rb | 2 +- app/models/zabbix.rb | 2 +- app/policies/application_policy.rb | 2 +- app/policies/cf_template_policy.rb | 2 +- app/policies/client_policy.rb | 2 +- app/policies/dish_policy.rb | 2 +- app/policies/ec2_instance_policy.rb | 2 +- app/policies/infrastructure_policy.rb | 2 +- app/policies/key_pair_policy.rb | 2 +- app/policies/monitoring_policy.rb | 2 +- app/policies/node_policy.rb | 2 +- app/policies/project_parameter_policy.rb | 2 +- app/policies/project_policy.rb | 2 +- app/policies/serverspec_policy.rb | 2 +- app/policies/snapshot_policy.rb | 2 +- app/policies/template_builder_policy.rb | 2 +- app/policies/user_policy.rb | 2 +- app/policies/zabbix_server_policy.rb | 2 +- app/validators/json_validator.rb | 2 +- app/validators/project_code_validator.rb | 2 +- app/validators/rsa_validator.rb | 2 +- app/validators/ruby_validator.rb | 2 +- app/validators/zabbix_server_fqdn_validator.rb | 2 +- scripts/dev_server.sh | 2 +- scripts/skyhopper_daemon.sh | 2 +- spec/controllers/app_settings_controller_spec.rb | 2 +- spec/controllers/application_controller_spec.rb | 2 +- spec/controllers/cf_templates_controller_spec.rb | 2 +- spec/controllers/clients_controller_spec.rb | 2 +- spec/controllers/concerns/controller_util_spec.rb | 2 +- spec/controllers/concerns/error_handler_spec.rb | 2 +- spec/controllers/dishes_controller_spec.rb | 2 +- spec/controllers/ec2_instances_controller_spec.rb | 2 +- spec/controllers/ec2_private_keys_controller_spec.rb | 2 +- spec/controllers/infrastructure_logs_controller_spec.rb | 2 +- spec/controllers/infrastructures_controller_spec.rb | 2 +- spec/controllers/key_pairs_controller_spec.rb | 2 +- spec/controllers/monitorings_controller_spec.rb | 2 +- spec/controllers/nodes_controller_spec.rb | 2 +- spec/controllers/project_parameters_controller_spec.rb | 2 +- spec/controllers/projects_controller_spec.rb | 2 +- spec/controllers/resources_controller_spec.rb | 2 +- spec/controllers/root_controller_spec.rb | 2 +- spec/controllers/server_status_controller_spec.rb | 2 +- spec/controllers/serverspecs_controller_spec.rb | 2 +- spec/controllers/snapshots_controller_spec.rb | 2 +- spec/controllers/template_builder_controller_spec.rb | 2 +- spec/controllers/users/sessions_controller_spec.rb | 2 +- spec/controllers/users_admin_controller_spec.rb | 2 +- spec/controllers/zabbix_servers_controller_spec.rb | 2 +- spec/factories.rb | 4 ++-- spec/factories/app_settings.rb | 2 +- spec/factories/cf_templates.rb | 2 +- spec/factories/cloud_providers.rb | 2 +- spec/factories/dish_serverspecs.rb | 2 +- spec/factories/dishes.rb | 2 +- spec/factories/infrastructure_logs.rb | 2 +- spec/factories/master_monitorings.rb | 2 +- spec/factories/monitorings.rb | 2 +- spec/factories/resource_status.rb | 2 +- spec/factories/resources.rb | 2 +- spec/factories/serverspec_schedules.rb | 2 +- spec/factories/user_projects.rb | 2 +- spec/helpers/deploy_wizard_helper_spec.rb | 2 +- spec/helpers/dishes_helper_spec.rb | 2 +- spec/helpers/infrastructures_helper_spec.rb | 2 +- spec/helpers/monitorings_helper_spec.rb | 2 +- spec/helpers/users_helper_spec.rb | 2 +- spec/helpers/vue_helper_spec.rb | 2 +- spec/jobs/periodic_serverspec_job_spec.rb | 2 +- spec/jobs/periodic_yum_job_spec.rb | 2 +- spec/jobs/serverspec_job_spec.rb | 2 +- spec/jobs/snapshot_job_spec.rb | 2 +- spec/lib/erb-builder/erb-builder_spec.rb | 2 +- spec/models/app_setting_spec.rb | 2 +- spec/models/cf_template_spec.rb | 2 +- spec/models/chef_server/deployment_spec.rb | 2 +- spec/models/client_spec.rb | 2 +- spec/models/cloud_provider_spec.rb | 2 +- spec/models/cloud_watch_spec.rb | 2 +- spec/models/dish_serverspec_spec.rb | 2 +- spec/models/dish_spec.rb | 2 +- spec/models/ec2_instance_spec.rb | 2 +- spec/models/ec2_private_key_spec.rb | 2 +- spec/models/infrastructure_log_spec.rb | 2 +- spec/models/infrastructure_spec.rb | 2 +- spec/models/master_monitoring_spec.rb | 2 +- spec/models/monitoring_spec.rb | 2 +- spec/models/node/attribute_spec.rb | 2 +- spec/models/node_spec.rb | 2 +- spec/models/operation_duration_spec.rb | 2 +- spec/models/project_parameter_spec.rb | 2 +- spec/models/project_spec.rb | 2 +- spec/models/rds_spec.rb | 2 +- spec/models/recurring_date_spec.rb | 2 +- spec/models/resource_serverspec_spec.rb | 2 +- spec/models/resource_spec.rb | 2 +- spec/models/resource_status_spec.rb | 2 +- spec/models/s3_spec.rb | 2 +- spec/models/schedule_spec.rb | 2 +- spec/models/server_state_spec.rb | 2 +- spec/models/serverspec_result_detail_spec.rb | 2 +- spec/models/serverspec_result_spec.rb | 2 +- spec/models/serverspec_schedule_spec.rb | 2 +- spec/models/serverspec_spec.rb | 2 +- spec/models/snapshot_schedule_spec.rb | 2 +- spec/models/snapshot_spec.rb | 2 +- spec/models/stack_spec.rb | 2 +- spec/models/template_builder/output_spec.rb | 2 +- spec/models/template_builder/parameter_spec.rb | 2 +- spec/models/template_builder/property_spec.rb | 2 +- spec/models/template_builder/resource/ec2/instance_spec.rb | 2 +- spec/models/template_builder/resource_spec.rb | 2 +- spec/models/template_builder_spec.rb | 2 +- spec/models/user_project_spec.rb | 2 +- spec/models/user_spec.rb | 2 +- spec/models/ws_connector_spec.rb | 2 +- spec/models/yum_schedule_spec.rb | 2 +- spec/models/zabbix_spec.rb | 2 +- spec/policies/application_policy_spec.rb | 2 +- spec/policies/cf_template_policy_spec.rb | 2 +- spec/policies/client_policy_spec.rb | 2 +- spec/policies/dish_policy_spec.rb | 2 +- spec/policies/ec2_instance_policy_spec.rb | 2 +- spec/policies/infrastructure_policy_spec.rb | 2 +- spec/policies/key_pair_policy_spec.rb | 2 +- spec/policies/monitoring_policy_spec.rb | 2 +- spec/policies/node_policy_spec.rb | 2 +- spec/policies/project_parameter_policy_spec.rb | 2 +- spec/policies/project_policy_spec.rb | 2 +- spec/policies/serverspec_policy_spec.rb | 2 +- spec/policies/template_builder_policy_spec.rb | 2 +- spec/policies/user_policy_spec.rb | 2 +- spec/rails_helper.rb | 2 +- spec/spec_helper.rb | 2 +- spec/support/controller_macros.rb | 2 +- spec/support/mocks/infra.rb | 2 +- spec/support/mocks/rds.rb | 2 +- spec/support/mocks/s3.rb | 2 +- spec/support/mocks/stack.rb | 2 +- spec/support/mocks/zabbix.rb | 2 +- 245 files changed, 246 insertions(+), 246 deletions(-) diff --git a/app/controllers/app_settings_controller.rb b/app/controllers/app_settings_controller.rb index 31f73b150..95a48cc92 100644 --- a/app/controllers/app_settings_controller.rb +++ b/app/controllers/app_settings_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 449b3703d..aafa59e0d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/cf_templates_controller.rb b/app/controllers/cf_templates_controller.rb index 3a8e6653e..df5d5b1fc 100644 --- a/app/controllers/cf_templates_controller.rb +++ b/app/controllers/cf_templates_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/clients_controller.rb b/app/controllers/clients_controller.rb index c11f473ee..4b18699cf 100644 --- a/app/controllers/clients_controller.rb +++ b/app/controllers/clients_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/concerns/controller_util.rb b/app/controllers/concerns/controller_util.rb index 134f3520e..0beef8f68 100644 --- a/app/controllers/concerns/controller_util.rb +++ b/app/controllers/concerns/controller_util.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/concerns/error_handler.rb b/app/controllers/concerns/error_handler.rb index 4f3b972fb..5f1eb9aeb 100644 --- a/app/controllers/concerns/error_handler.rb +++ b/app/controllers/concerns/error_handler.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/concerns/infra_logger.rb b/app/controllers/concerns/infra_logger.rb index 02a971316..8a1c66c3b 100644 --- a/app/controllers/concerns/infra_logger.rb +++ b/app/controllers/concerns/infra_logger.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/dishes_controller.rb b/app/controllers/dishes_controller.rb index 6504b4bd4..90d468a38 100644 --- a/app/controllers/dishes_controller.rb +++ b/app/controllers/dishes_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/dishes_controller/validate.rb b/app/controllers/dishes_controller/validate.rb index 2fb5941cf..90a13ea6c 100644 --- a/app/controllers/dishes_controller/validate.rb +++ b/app/controllers/dishes_controller/validate.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/ec2_instances_controller.rb b/app/controllers/ec2_instances_controller.rb index 2cb3cccdc..9c6618630 100644 --- a/app/controllers/ec2_instances_controller.rb +++ b/app/controllers/ec2_instances_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/ec2_private_keys_controller.rb b/app/controllers/ec2_private_keys_controller.rb index f09716c69..69e19e393 100644 --- a/app/controllers/ec2_private_keys_controller.rb +++ b/app/controllers/ec2_private_keys_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/elb_controller.rb b/app/controllers/elb_controller.rb index 3182a825c..372f7e82b 100755 --- a/app/controllers/elb_controller.rb +++ b/app/controllers/elb_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/infrastructure_logs_controller.rb b/app/controllers/infrastructure_logs_controller.rb index 1685ebb25..39ae22e74 100644 --- a/app/controllers/infrastructure_logs_controller.rb +++ b/app/controllers/infrastructure_logs_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/infrastructures_controller.rb b/app/controllers/infrastructures_controller.rb index d53ca63f5..e8fecd328 100644 --- a/app/controllers/infrastructures_controller.rb +++ b/app/controllers/infrastructures_controller.rb @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/key_pairs_controller.rb b/app/controllers/key_pairs_controller.rb index 3cd7b712d..5e7b12529 100644 --- a/app/controllers/key_pairs_controller.rb +++ b/app/controllers/key_pairs_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/monitorings_controller.rb b/app/controllers/monitorings_controller.rb index 3e44161fd..8492304ba 100644 --- a/app/controllers/monitorings_controller.rb +++ b/app/controllers/monitorings_controller.rb @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb index 02625480c..93cc7dfc6 100644 --- a/app/controllers/nodes_controller.rb +++ b/app/controllers/nodes_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/project_parameters_controller.rb b/app/controllers/project_parameters_controller.rb index 1d7343132..019279214 100644 --- a/app/controllers/project_parameters_controller.rb +++ b/app/controllers/project_parameters_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index bc0c23875..7008ae8da 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/resources_controller.rb b/app/controllers/resources_controller.rb index 35c6d29cc..4818ccbcf 100644 --- a/app/controllers/resources_controller.rb +++ b/app/controllers/resources_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/root_controller.rb b/app/controllers/root_controller.rb index 78510162d..03b03e491 100644 --- a/app/controllers/root_controller.rb +++ b/app/controllers/root_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/server_status_controller.rb b/app/controllers/server_status_controller.rb index 027db8808..6da1c3547 100644 --- a/app/controllers/server_status_controller.rb +++ b/app/controllers/server_status_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/serverspecs_controller.rb b/app/controllers/serverspecs_controller.rb index 9a64b398a..d481c17b8 100644 --- a/app/controllers/serverspecs_controller.rb +++ b/app/controllers/serverspecs_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/snapshots_controller.rb b/app/controllers/snapshots_controller.rb index 81e3c9c9f..4073f17e2 100644 --- a/app/controllers/snapshots_controller.rb +++ b/app/controllers/snapshots_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/template_builder_controller.rb b/app/controllers/template_builder_controller.rb index bdfbe6b25..f7ab16b77 100644 --- a/app/controllers/template_builder_controller.rb +++ b/app/controllers/template_builder_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index aa3d932c5..dba75e655 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/controllers/users_admin_controller.rb b/app/controllers/users_admin_controller.rb index 6190ca8d1..f45724dc7 100644 --- a/app/controllers/users_admin_controller.rb +++ b/app/controllers/users_admin_controller.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index fd9a29fee..39e15ca26 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/cf_templates_helper.rb b/app/helpers/cf_templates_helper.rb index e62b38688..a6b86facd 100644 --- a/app/helpers/cf_templates_helper.rb +++ b/app/helpers/cf_templates_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/clients_helper.rb b/app/helpers/clients_helper.rb index 23938b4e9..fe02c149a 100644 --- a/app/helpers/clients_helper.rb +++ b/app/helpers/clients_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/deploy_wizard_helper.rb b/app/helpers/deploy_wizard_helper.rb index 484726a1c..c6ea19a32 100644 --- a/app/helpers/deploy_wizard_helper.rb +++ b/app/helpers/deploy_wizard_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/dishes_helper.rb b/app/helpers/dishes_helper.rb index a3e7b0d96..fa8e63f72 100644 --- a/app/helpers/dishes_helper.rb +++ b/app/helpers/dishes_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb index 7f239e565..1c1855d48 100644 --- a/app/helpers/form_helper.rb +++ b/app/helpers/form_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/infrastructures_helper.rb b/app/helpers/infrastructures_helper.rb index 9ca31da32..a4667254f 100644 --- a/app/helpers/infrastructures_helper.rb +++ b/app/helpers/infrastructures_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/monitorings_helper.rb b/app/helpers/monitorings_helper.rb index 83c0c33cb..fb402820c 100644 --- a/app/helpers/monitorings_helper.rb +++ b/app/helpers/monitorings_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/nodes_helper.rb b/app/helpers/nodes_helper.rb index c6dd7f3b4..625c298e3 100644 --- a/app/helpers/nodes_helper.rb +++ b/app/helpers/nodes_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/notifications_helper.rb b/app/helpers/notifications_helper.rb index 736d26f6f..e3fab9aa0 100644 --- a/app/helpers/notifications_helper.rb +++ b/app/helpers/notifications_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 1985762e8..4ec03e6fb 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/template_builders_helper.rb b/app/helpers/template_builders_helper.rb index b9e503bce..16c5eae68 100644 --- a/app/helpers/template_builders_helper.rb +++ b/app/helpers/template_builders_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 451210788..c1b8bcc11 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/helpers/vue_helper.rb b/app/helpers/vue_helper.rb index 3f60d537c..75ba393b8 100644 --- a/app/helpers/vue_helper.rb +++ b/app/helpers/vue_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/jobs/delete_outdated_snapshots_job.rb b/app/jobs/delete_outdated_snapshots_job.rb index 421b1897b..3dc13e0e1 100644 --- a/app/jobs/delete_outdated_snapshots_job.rb +++ b/app/jobs/delete_outdated_snapshots_job.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/jobs/operation_worker.rb b/app/jobs/operation_worker.rb index da1a2c7f6..b17609ec9 100644 --- a/app/jobs/operation_worker.rb +++ b/app/jobs/operation_worker.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/jobs/periodic_serverspec_job.rb b/app/jobs/periodic_serverspec_job.rb index 7011096cf..5c9d1dbde 100644 --- a/app/jobs/periodic_serverspec_job.rb +++ b/app/jobs/periodic_serverspec_job.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/jobs/periodic_yum_job.rb b/app/jobs/periodic_yum_job.rb index 0ffa3d8c7..978feb6ba 100644 --- a/app/jobs/periodic_yum_job.rb +++ b/app/jobs/periodic_yum_job.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/jobs/server_state_worker.rb b/app/jobs/server_state_worker.rb index f544163c5..f709929aa 100644 --- a/app/jobs/server_state_worker.rb +++ b/app/jobs/server_state_worker.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/jobs/serverspec_job.rb b/app/jobs/serverspec_job.rb index 2d2dd3667..473ab1670 100644 --- a/app/jobs/serverspec_job.rb +++ b/app/jobs/serverspec_job.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/jobs/snapshot_job.rb b/app/jobs/snapshot_job.rb index 2dc05bc49..b1c88912f 100644 --- a/app/jobs/snapshot_job.rb +++ b/app/jobs/snapshot_job.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/jobs/yum_job.rb b/app/jobs/yum_job.rb index f94d253ab..c4d0055e3 100644 --- a/app/jobs/yum_job.rb +++ b/app/jobs/yum_job.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/app_setting.rb b/app/models/app_setting.rb index be4a34b55..8ffedc3ab 100644 --- a/app/models/app_setting.rb +++ b/app/models/app_setting.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/cf_template.rb b/app/models/cf_template.rb index a9fb4b30c..a8f3c87ea 100644 --- a/app/models/cf_template.rb +++ b/app/models/cf_template.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/chef_api.rb b/app/models/chef_api.rb index 5e1c667d7..593b32a59 100644 --- a/app/models/chef_api.rb +++ b/app/models/chef_api.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/chef_server/deployment.rb b/app/models/chef_server/deployment.rb index 6664c71cb..c8ffb859a 100644 --- a/app/models/chef_server/deployment.rb +++ b/app/models/chef_server/deployment.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/client.rb b/app/models/client.rb index c2470aeb0..d34536bc5 100644 --- a/app/models/client.rb +++ b/app/models/client.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/cloud_provider.rb b/app/models/cloud_provider.rb index 3e6ec09a9..4442b463b 100644 --- a/app/models/cloud_provider.rb +++ b/app/models/cloud_provider.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/cloud_watch.rb b/app/models/cloud_watch.rb index 698989691..c0f2c1eb8 100644 --- a/app/models/cloud_watch.rb +++ b/app/models/cloud_watch.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/concerns/cryptize.rb b/app/models/concerns/cryptize.rb index 614640141..2483c956f 100644 --- a/app/models/concerns/cryptize.rb +++ b/app/models/concerns/cryptize.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/dish.rb b/app/models/dish.rb index 7d58abc38..71ec40565 100644 --- a/app/models/dish.rb +++ b/app/models/dish.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/dish_serverspec.rb b/app/models/dish_serverspec.rb index 99e607259..6dd567933 100644 --- a/app/models/dish_serverspec.rb +++ b/app/models/dish_serverspec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/ec2_instance.rb b/app/models/ec2_instance.rb index 558b8482c..ff1d9d0b9 100644 --- a/app/models/ec2_instance.rb +++ b/app/models/ec2_instance.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/ec2_private_key.rb b/app/models/ec2_private_key.rb index 995d473e0..83439df0d 100644 --- a/app/models/ec2_private_key.rb +++ b/app/models/ec2_private_key.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/elb.rb b/app/models/elb.rb index 242595aac..8f6aa2172 100644 --- a/app/models/elb.rb +++ b/app/models/elb.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/infrastructure.rb b/app/models/infrastructure.rb index 81a875d9e..029a464a1 100644 --- a/app/models/infrastructure.rb +++ b/app/models/infrastructure.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/infrastructure_log.rb b/app/models/infrastructure_log.rb index fc221dcc4..f7bf5912f 100644 --- a/app/models/infrastructure_log.rb +++ b/app/models/infrastructure_log.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/key_pair.rb b/app/models/key_pair.rb index 778ed440d..b8e144c4a 100644 --- a/app/models/key_pair.rb +++ b/app/models/key_pair.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/master_monitoring.rb b/app/models/master_monitoring.rb index a1d1ff9c6..81fd1ad3b 100644 --- a/app/models/master_monitoring.rb +++ b/app/models/master_monitoring.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/monitoring.rb b/app/models/monitoring.rb index 652718b16..2300be457 100644 --- a/app/models/monitoring.rb +++ b/app/models/monitoring.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/node.rb b/app/models/node.rb index d84b3b032..f4064ab79 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/node/attribute.rb b/app/models/node/attribute.rb index f87fcd30a..a61950615 100644 --- a/app/models/node/attribute.rb +++ b/app/models/node/attribute.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/operation_duration.rb b/app/models/operation_duration.rb index 398146366..470c5323f 100644 --- a/app/models/operation_duration.rb +++ b/app/models/operation_duration.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/project.rb b/app/models/project.rb index e68b01641..deb6e229c 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/project_parameter.rb b/app/models/project_parameter.rb index c8596eb82..bfa52635c 100644 --- a/app/models/project_parameter.rb +++ b/app/models/project_parameter.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/rds.rb b/app/models/rds.rb index 1d70da516..99482af9c 100644 --- a/app/models/rds.rb +++ b/app/models/rds.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/recurring_date.rb b/app/models/recurring_date.rb index af5001b6c..2f0a161b7 100644 --- a/app/models/recurring_date.rb +++ b/app/models/recurring_date.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/resource.rb b/app/models/resource.rb index bd730b416..793dc26a2 100644 --- a/app/models/resource.rb +++ b/app/models/resource.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/resource_serverspec.rb b/app/models/resource_serverspec.rb index 7e561a416..9fc4ea68c 100644 --- a/app/models/resource_serverspec.rb +++ b/app/models/resource_serverspec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/resource_status.rb b/app/models/resource_status.rb index bc2c8124f..6428424c7 100644 --- a/app/models/resource_status.rb +++ b/app/models/resource_status.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/s3.rb b/app/models/s3.rb index c48b300a4..1808e2591 100644 --- a/app/models/s3.rb +++ b/app/models/s3.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/schedule.rb b/app/models/schedule.rb index 29d8cf52b..9412c7242 100644 --- a/app/models/schedule.rb +++ b/app/models/schedule.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/server_state.rb b/app/models/server_state.rb index 6be190a59..2929383a1 100644 --- a/app/models/server_state.rb +++ b/app/models/server_state.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/serverspec.rb b/app/models/serverspec.rb index 8e65ed66b..600a9fc75 100644 --- a/app/models/serverspec.rb +++ b/app/models/serverspec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/serverspec_result.rb b/app/models/serverspec_result.rb index 987efa5b4..7bcf2e0c9 100644 --- a/app/models/serverspec_result.rb +++ b/app/models/serverspec_result.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/serverspec_result_detail.rb b/app/models/serverspec_result_detail.rb index 8403a5223..9c76d4758 100644 --- a/app/models/serverspec_result_detail.rb +++ b/app/models/serverspec_result_detail.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/serverspec_schedule.rb b/app/models/serverspec_schedule.rb index 0a915308e..61c994dde 100644 --- a/app/models/serverspec_schedule.rb +++ b/app/models/serverspec_schedule.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/snapshot.rb b/app/models/snapshot.rb index b09549fc4..0822900d2 100644 --- a/app/models/snapshot.rb +++ b/app/models/snapshot.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/snapshot_schedule.rb b/app/models/snapshot_schedule.rb index d77aa01f6..820b05dd8 100644 --- a/app/models/snapshot_schedule.rb +++ b/app/models/snapshot_schedule.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/stack.rb b/app/models/stack.rb index a7175b422..a55c3a436 100644 --- a/app/models/stack.rb +++ b/app/models/stack.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder.rb b/app/models/template_builder.rb index dde889cd2..98152db59 100644 --- a/app/models/template_builder.rb +++ b/app/models/template_builder.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/output.rb b/app/models/template_builder/output.rb index 4b8380bf7..c6c2fbbf1 100644 --- a/app/models/template_builder/output.rb +++ b/app/models/template_builder/output.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/parameter.rb b/app/models/template_builder/parameter.rb index be1a985b2..e9f2365c6 100644 --- a/app/models/template_builder/parameter.rb +++ b/app/models/template_builder/parameter.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/property.rb b/app/models/template_builder/property.rb index 4cfa320fe..3c956da63 100644 --- a/app/models/template_builder/property.rb +++ b/app/models/template_builder/property.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource.rb b/app/models/template_builder/resource.rb index 0ccd2bf57..3aef94ce7 100644 --- a/app/models/template_builder/resource.rb +++ b/app/models/template_builder/resource.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource/ec2.rb b/app/models/template_builder/resource/ec2.rb index 8d58805b2..985565f2d 100644 --- a/app/models/template_builder/resource/ec2.rb +++ b/app/models/template_builder/resource/ec2.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource/ec2/eip.rb b/app/models/template_builder/resource/ec2/eip.rb index f173b9902..466167318 100644 --- a/app/models/template_builder/resource/ec2/eip.rb +++ b/app/models/template_builder/resource/ec2/eip.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource/ec2/instance.rb b/app/models/template_builder/resource/ec2/instance.rb index 7733b125a..2b4e60618 100644 --- a/app/models/template_builder/resource/ec2/instance.rb +++ b/app/models/template_builder/resource/ec2/instance.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource/ec2/security_group.rb b/app/models/template_builder/resource/ec2/security_group.rb index a0bb69c9b..68690e0d3 100644 --- a/app/models/template_builder/resource/ec2/security_group.rb +++ b/app/models/template_builder/resource/ec2/security_group.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource/ec2/vpc.rb b/app/models/template_builder/resource/ec2/vpc.rb index ae1a7abf3..55b7ee0e2 100644 --- a/app/models/template_builder/resource/ec2/vpc.rb +++ b/app/models/template_builder/resource/ec2/vpc.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource/rds.rb b/app/models/template_builder/resource/rds.rb index 194c027de..d45b8fb08 100644 --- a/app/models/template_builder/resource/rds.rb +++ b/app/models/template_builder/resource/rds.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource/rds/db_instance.rb b/app/models/template_builder/resource/rds/db_instance.rb index 6f6510516..ecce7353c 100644 --- a/app/models/template_builder/resource/rds/db_instance.rb +++ b/app/models/template_builder/resource/rds/db_instance.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/template_builder/resource/s3/bucket.rb b/app/models/template_builder/resource/s3/bucket.rb index 15f576d36..938bb7dff 100644 --- a/app/models/template_builder/resource/s3/bucket.rb +++ b/app/models/template_builder/resource/s3/bucket.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/user.rb b/app/models/user.rb index aad4c7790..5f7a7811b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/user_project.rb b/app/models/user_project.rb index b14ba37aa..6525f2899 100644 --- a/app/models/user_project.rb +++ b/app/models/user_project.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/user_zabbix_server.rb b/app/models/user_zabbix_server.rb index c9f5fcad0..d99e7d485 100644 --- a/app/models/user_zabbix_server.rb +++ b/app/models/user_zabbix_server.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/ws_connector.rb b/app/models/ws_connector.rb index c7e16656c..fcb76f6cc 100644 --- a/app/models/ws_connector.rb +++ b/app/models/ws_connector.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/yum_schedule.rb b/app/models/yum_schedule.rb index 818d607cf..2420a43fd 100644 --- a/app/models/yum_schedule.rb +++ b/app/models/yum_schedule.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/models/zabbix.rb b/app/models/zabbix.rb index a61b28acb..49238fb8f 100644 --- a/app/models/zabbix.rb +++ b/app/models/zabbix.rb @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index 476d16ebc..ff5d762aa 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/cf_template_policy.rb b/app/policies/cf_template_policy.rb index e88e1e43b..155197abe 100644 --- a/app/policies/cf_template_policy.rb +++ b/app/policies/cf_template_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/client_policy.rb b/app/policies/client_policy.rb index 77767b008..27da5ad71 100644 --- a/app/policies/client_policy.rb +++ b/app/policies/client_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/dish_policy.rb b/app/policies/dish_policy.rb index aff5cccc2..ea6b64945 100644 --- a/app/policies/dish_policy.rb +++ b/app/policies/dish_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/ec2_instance_policy.rb b/app/policies/ec2_instance_policy.rb index a87831874..d57fff685 100644 --- a/app/policies/ec2_instance_policy.rb +++ b/app/policies/ec2_instance_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/infrastructure_policy.rb b/app/policies/infrastructure_policy.rb index 41f84123c..e82ed6d15 100644 --- a/app/policies/infrastructure_policy.rb +++ b/app/policies/infrastructure_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/key_pair_policy.rb b/app/policies/key_pair_policy.rb index df2b6db87..c38188ab4 100644 --- a/app/policies/key_pair_policy.rb +++ b/app/policies/key_pair_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/monitoring_policy.rb b/app/policies/monitoring_policy.rb index 8f2800840..ad62fc40a 100644 --- a/app/policies/monitoring_policy.rb +++ b/app/policies/monitoring_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/node_policy.rb b/app/policies/node_policy.rb index 41d20bdf3..4c475c9d9 100644 --- a/app/policies/node_policy.rb +++ b/app/policies/node_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/project_parameter_policy.rb b/app/policies/project_parameter_policy.rb index d9b72dc04..3c9570af9 100644 --- a/app/policies/project_parameter_policy.rb +++ b/app/policies/project_parameter_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb index aa9b40c1b..0340b1fc8 100644 --- a/app/policies/project_policy.rb +++ b/app/policies/project_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/serverspec_policy.rb b/app/policies/serverspec_policy.rb index a13e76983..ab00b7f35 100644 --- a/app/policies/serverspec_policy.rb +++ b/app/policies/serverspec_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/snapshot_policy.rb b/app/policies/snapshot_policy.rb index 77dfeb6e5..58a66b434 100644 --- a/app/policies/snapshot_policy.rb +++ b/app/policies/snapshot_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/template_builder_policy.rb b/app/policies/template_builder_policy.rb index ce5474f43..27a73d9a3 100644 --- a/app/policies/template_builder_policy.rb +++ b/app/policies/template_builder_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/user_policy.rb b/app/policies/user_policy.rb index 5c8f2b59e..1ad49dd9d 100644 --- a/app/policies/user_policy.rb +++ b/app/policies/user_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/policies/zabbix_server_policy.rb b/app/policies/zabbix_server_policy.rb index c2a85f246..21cf11590 100644 --- a/app/policies/zabbix_server_policy.rb +++ b/app/policies/zabbix_server_policy.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/validators/json_validator.rb b/app/validators/json_validator.rb index a650b458d..1827dd28e 100644 --- a/app/validators/json_validator.rb +++ b/app/validators/json_validator.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/validators/project_code_validator.rb b/app/validators/project_code_validator.rb index 0f5d40b5c..c49176a2f 100644 --- a/app/validators/project_code_validator.rb +++ b/app/validators/project_code_validator.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/validators/rsa_validator.rb b/app/validators/rsa_validator.rb index 74f1873eb..1c0f88f12 100644 --- a/app/validators/rsa_validator.rb +++ b/app/validators/rsa_validator.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/validators/ruby_validator.rb b/app/validators/ruby_validator.rb index 651b184d7..a24f61f21 100644 --- a/app/validators/ruby_validator.rb +++ b/app/validators/ruby_validator.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/app/validators/zabbix_server_fqdn_validator.rb b/app/validators/zabbix_server_fqdn_validator.rb index 5778a67a5..6337e9623 100644 --- a/app/validators/zabbix_server_fqdn_validator.rb +++ b/app/validators/zabbix_server_fqdn_validator.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/scripts/dev_server.sh b/scripts/dev_server.sh index 810e7869f..82b0b199a 100755 --- a/scripts/dev_server.sh +++ b/scripts/dev_server.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/scripts/skyhopper_daemon.sh b/scripts/skyhopper_daemon.sh index f3ad5a433..1d0ecb7de 100755 --- a/scripts/skyhopper_daemon.sh +++ b/scripts/skyhopper_daemon.sh @@ -1,7 +1,7 @@ #!/bin/bash # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/app_settings_controller_spec.rb b/spec/controllers/app_settings_controller_spec.rb index de8faa8ef..4f2216a8a 100644 --- a/spec/controllers/app_settings_controller_spec.rb +++ b/spec/controllers/app_settings_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 6e2e39eea..7ea066f2a 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/cf_templates_controller_spec.rb b/spec/controllers/cf_templates_controller_spec.rb index 997eb6caf..2d5834b73 100644 --- a/spec/controllers/cf_templates_controller_spec.rb +++ b/spec/controllers/cf_templates_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/clients_controller_spec.rb b/spec/controllers/clients_controller_spec.rb index 259ef3896..c4c6bfea8 100644 --- a/spec/controllers/clients_controller_spec.rb +++ b/spec/controllers/clients_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/concerns/controller_util_spec.rb b/spec/controllers/concerns/controller_util_spec.rb index ac7d53187..2224e8deb 100644 --- a/spec/controllers/concerns/controller_util_spec.rb +++ b/spec/controllers/concerns/controller_util_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/concerns/error_handler_spec.rb b/spec/controllers/concerns/error_handler_spec.rb index 0fe874dfe..7dd2eb437 100644 --- a/spec/controllers/concerns/error_handler_spec.rb +++ b/spec/controllers/concerns/error_handler_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/dishes_controller_spec.rb b/spec/controllers/dishes_controller_spec.rb index 9e15c2449..276ae1821 100644 --- a/spec/controllers/dishes_controller_spec.rb +++ b/spec/controllers/dishes_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/ec2_instances_controller_spec.rb b/spec/controllers/ec2_instances_controller_spec.rb index cf3a9b22f..1947d2a23 100644 --- a/spec/controllers/ec2_instances_controller_spec.rb +++ b/spec/controllers/ec2_instances_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/ec2_private_keys_controller_spec.rb b/spec/controllers/ec2_private_keys_controller_spec.rb index 295460698..c21bc60dd 100644 --- a/spec/controllers/ec2_private_keys_controller_spec.rb +++ b/spec/controllers/ec2_private_keys_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/infrastructure_logs_controller_spec.rb b/spec/controllers/infrastructure_logs_controller_spec.rb index a536db324..79a1808c6 100644 --- a/spec/controllers/infrastructure_logs_controller_spec.rb +++ b/spec/controllers/infrastructure_logs_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/infrastructures_controller_spec.rb b/spec/controllers/infrastructures_controller_spec.rb index dba96a72e..07077a584 100644 --- a/spec/controllers/infrastructures_controller_spec.rb +++ b/spec/controllers/infrastructures_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/key_pairs_controller_spec.rb b/spec/controllers/key_pairs_controller_spec.rb index cf9ddad31..b10b1227a 100644 --- a/spec/controllers/key_pairs_controller_spec.rb +++ b/spec/controllers/key_pairs_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/monitorings_controller_spec.rb b/spec/controllers/monitorings_controller_spec.rb index 7a97225ed..a16f068ec 100644 --- a/spec/controllers/monitorings_controller_spec.rb +++ b/spec/controllers/monitorings_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/nodes_controller_spec.rb b/spec/controllers/nodes_controller_spec.rb index 1a7ea6d30..b8326d62d 100644 --- a/spec/controllers/nodes_controller_spec.rb +++ b/spec/controllers/nodes_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/project_parameters_controller_spec.rb b/spec/controllers/project_parameters_controller_spec.rb index b099b4763..9e03703bf 100644 --- a/spec/controllers/project_parameters_controller_spec.rb +++ b/spec/controllers/project_parameters_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index 20ca757eb..85a923ee5 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/resources_controller_spec.rb b/spec/controllers/resources_controller_spec.rb index 211412b4e..8be16f149 100644 --- a/spec/controllers/resources_controller_spec.rb +++ b/spec/controllers/resources_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/root_controller_spec.rb b/spec/controllers/root_controller_spec.rb index 2cc422925..506b3aa6f 100644 --- a/spec/controllers/root_controller_spec.rb +++ b/spec/controllers/root_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/server_status_controller_spec.rb b/spec/controllers/server_status_controller_spec.rb index f7edc151a..6ff09c966 100644 --- a/spec/controllers/server_status_controller_spec.rb +++ b/spec/controllers/server_status_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/serverspecs_controller_spec.rb b/spec/controllers/serverspecs_controller_spec.rb index 87a1a95c4..f8a234e8d 100644 --- a/spec/controllers/serverspecs_controller_spec.rb +++ b/spec/controllers/serverspecs_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/snapshots_controller_spec.rb b/spec/controllers/snapshots_controller_spec.rb index c08b9a175..f636c0fe4 100644 --- a/spec/controllers/snapshots_controller_spec.rb +++ b/spec/controllers/snapshots_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/template_builder_controller_spec.rb b/spec/controllers/template_builder_controller_spec.rb index cc561d1b9..8949c4727 100644 --- a/spec/controllers/template_builder_controller_spec.rb +++ b/spec/controllers/template_builder_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/users/sessions_controller_spec.rb b/spec/controllers/users/sessions_controller_spec.rb index 889ce7516..56616da28 100644 --- a/spec/controllers/users/sessions_controller_spec.rb +++ b/spec/controllers/users/sessions_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/users_admin_controller_spec.rb b/spec/controllers/users_admin_controller_spec.rb index 4347d62cc..3c8b6747d 100644 --- a/spec/controllers/users_admin_controller_spec.rb +++ b/spec/controllers/users_admin_controller_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/controllers/zabbix_servers_controller_spec.rb b/spec/controllers/zabbix_servers_controller_spec.rb index b5d87c06d..23be17758 100644 --- a/spec/controllers/zabbix_servers_controller_spec.rb +++ b/spec/controllers/zabbix_servers_controller_spec.rb @@ -1,6 +1,6 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories.rb b/spec/factories.rb index e6bc792ce..e6070bdbe 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # @@ -16,7 +16,7 @@ version "MyString" details "MyString" end - + factory :recurring_date do operation_duration_id "MyString" repeats 1 diff --git a/spec/factories/app_settings.rb b/spec/factories/app_settings.rb index 1c53a90d6..2adf4155f 100644 --- a/spec/factories/app_settings.rb +++ b/spec/factories/app_settings.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/cf_templates.rb b/spec/factories/cf_templates.rb index e939d80b2..24ca52173 100644 --- a/spec/factories/cf_templates.rb +++ b/spec/factories/cf_templates.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/cloud_providers.rb b/spec/factories/cloud_providers.rb index c56056a15..1493f1725 100644 --- a/spec/factories/cloud_providers.rb +++ b/spec/factories/cloud_providers.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/dish_serverspecs.rb b/spec/factories/dish_serverspecs.rb index 7c16c9907..ccc253bc0 100644 --- a/spec/factories/dish_serverspecs.rb +++ b/spec/factories/dish_serverspecs.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/dishes.rb b/spec/factories/dishes.rb index 96481ac5d..9ad2805ed 100644 --- a/spec/factories/dishes.rb +++ b/spec/factories/dishes.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/infrastructure_logs.rb b/spec/factories/infrastructure_logs.rb index 42151350e..4ad49fab2 100644 --- a/spec/factories/infrastructure_logs.rb +++ b/spec/factories/infrastructure_logs.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/master_monitorings.rb b/spec/factories/master_monitorings.rb index 35e7b9ee8..f08d3d7a1 100644 --- a/spec/factories/master_monitorings.rb +++ b/spec/factories/master_monitorings.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/monitorings.rb b/spec/factories/monitorings.rb index 0b912bcfe..d9d033f67 100644 --- a/spec/factories/monitorings.rb +++ b/spec/factories/monitorings.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/resource_status.rb b/spec/factories/resource_status.rb index 57d36d186..0ecf1a260 100644 --- a/spec/factories/resource_status.rb +++ b/spec/factories/resource_status.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/resources.rb b/spec/factories/resources.rb index 3b8f927fd..c0a7e337c 100644 --- a/spec/factories/resources.rb +++ b/spec/factories/resources.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/serverspec_schedules.rb b/spec/factories/serverspec_schedules.rb index 9a3b983bd..f4efddd85 100644 --- a/spec/factories/serverspec_schedules.rb +++ b/spec/factories/serverspec_schedules.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/factories/user_projects.rb b/spec/factories/user_projects.rb index 16e74c79d..e07773da6 100644 --- a/spec/factories/user_projects.rb +++ b/spec/factories/user_projects.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/helpers/deploy_wizard_helper_spec.rb b/spec/helpers/deploy_wizard_helper_spec.rb index a90375c2e..bf8c93341 100644 --- a/spec/helpers/deploy_wizard_helper_spec.rb +++ b/spec/helpers/deploy_wizard_helper_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/helpers/dishes_helper_spec.rb b/spec/helpers/dishes_helper_spec.rb index 360e43da0..5d9e37f1a 100644 --- a/spec/helpers/dishes_helper_spec.rb +++ b/spec/helpers/dishes_helper_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/helpers/infrastructures_helper_spec.rb b/spec/helpers/infrastructures_helper_spec.rb index e04ae75c9..9bbfabf29 100644 --- a/spec/helpers/infrastructures_helper_spec.rb +++ b/spec/helpers/infrastructures_helper_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/helpers/monitorings_helper_spec.rb b/spec/helpers/monitorings_helper_spec.rb index 4a0c83d08..444a7d554 100644 --- a/spec/helpers/monitorings_helper_spec.rb +++ b/spec/helpers/monitorings_helper_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/helpers/users_helper_spec.rb b/spec/helpers/users_helper_spec.rb index dc297d995..b5b1a7cf0 100644 --- a/spec/helpers/users_helper_spec.rb +++ b/spec/helpers/users_helper_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/helpers/vue_helper_spec.rb b/spec/helpers/vue_helper_spec.rb index 6d8f63b73..f219b11c3 100644 --- a/spec/helpers/vue_helper_spec.rb +++ b/spec/helpers/vue_helper_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/jobs/periodic_serverspec_job_spec.rb b/spec/jobs/periodic_serverspec_job_spec.rb index 1aa05fa30..1d9e78e28 100644 --- a/spec/jobs/periodic_serverspec_job_spec.rb +++ b/spec/jobs/periodic_serverspec_job_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/jobs/periodic_yum_job_spec.rb b/spec/jobs/periodic_yum_job_spec.rb index 50091e0c2..905f09715 100644 --- a/spec/jobs/periodic_yum_job_spec.rb +++ b/spec/jobs/periodic_yum_job_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/jobs/serverspec_job_spec.rb b/spec/jobs/serverspec_job_spec.rb index db7754eb8..a0383f401 100644 --- a/spec/jobs/serverspec_job_spec.rb +++ b/spec/jobs/serverspec_job_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/jobs/snapshot_job_spec.rb b/spec/jobs/snapshot_job_spec.rb index a10f038da..230c3b7d8 100644 --- a/spec/jobs/snapshot_job_spec.rb +++ b/spec/jobs/snapshot_job_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/lib/erb-builder/erb-builder_spec.rb b/spec/lib/erb-builder/erb-builder_spec.rb index 6c04272f0..b81e8c028 100644 --- a/spec/lib/erb-builder/erb-builder_spec.rb +++ b/spec/lib/erb-builder/erb-builder_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/app_setting_spec.rb b/spec/models/app_setting_spec.rb index d42ecf71c..6a615f0a7 100644 --- a/spec/models/app_setting_spec.rb +++ b/spec/models/app_setting_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/cf_template_spec.rb b/spec/models/cf_template_spec.rb index bcd2d9736..c109dff73 100644 --- a/spec/models/cf_template_spec.rb +++ b/spec/models/cf_template_spec.rb @@ -1,5 +1,5 @@ # # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/chef_server/deployment_spec.rb b/spec/models/chef_server/deployment_spec.rb index 5e3837a17..b655eb5bb 100644 --- a/spec/models/chef_server/deployment_spec.rb +++ b/spec/models/chef_server/deployment_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/client_spec.rb b/spec/models/client_spec.rb index 2e63cabdb..af718a043 100644 --- a/spec/models/client_spec.rb +++ b/spec/models/client_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/cloud_provider_spec.rb b/spec/models/cloud_provider_spec.rb index e975f3ac3..315d1bc5c 100644 --- a/spec/models/cloud_provider_spec.rb +++ b/spec/models/cloud_provider_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/cloud_watch_spec.rb b/spec/models/cloud_watch_spec.rb index af9d994d0..630595994 100644 --- a/spec/models/cloud_watch_spec.rb +++ b/spec/models/cloud_watch_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/dish_serverspec_spec.rb b/spec/models/dish_serverspec_spec.rb index ab6925a56..f5ddf943f 100644 --- a/spec/models/dish_serverspec_spec.rb +++ b/spec/models/dish_serverspec_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/dish_spec.rb b/spec/models/dish_spec.rb index ebcae6805..d2b77a79f 100644 --- a/spec/models/dish_spec.rb +++ b/spec/models/dish_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/ec2_instance_spec.rb b/spec/models/ec2_instance_spec.rb index fa455d9a2..c4cdac040 100644 --- a/spec/models/ec2_instance_spec.rb +++ b/spec/models/ec2_instance_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/ec2_private_key_spec.rb b/spec/models/ec2_private_key_spec.rb index 38827de3a..0b4d24a9a 100644 --- a/spec/models/ec2_private_key_spec.rb +++ b/spec/models/ec2_private_key_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/infrastructure_log_spec.rb b/spec/models/infrastructure_log_spec.rb index 3aca92685..5eed5aebf 100644 --- a/spec/models/infrastructure_log_spec.rb +++ b/spec/models/infrastructure_log_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/infrastructure_spec.rb b/spec/models/infrastructure_spec.rb index 45e7a3c11..bbab779bd 100644 --- a/spec/models/infrastructure_spec.rb +++ b/spec/models/infrastructure_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/master_monitoring_spec.rb b/spec/models/master_monitoring_spec.rb index e7f531387..d97f429b9 100644 --- a/spec/models/master_monitoring_spec.rb +++ b/spec/models/master_monitoring_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/monitoring_spec.rb b/spec/models/monitoring_spec.rb index 4468eb871..b86583141 100644 --- a/spec/models/monitoring_spec.rb +++ b/spec/models/monitoring_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/node/attribute_spec.rb b/spec/models/node/attribute_spec.rb index 072d19611..729d4769a 100644 --- a/spec/models/node/attribute_spec.rb +++ b/spec/models/node/attribute_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/node_spec.rb b/spec/models/node_spec.rb index cf1b08e7d..e5552ed9b 100644 --- a/spec/models/node_spec.rb +++ b/spec/models/node_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/operation_duration_spec.rb b/spec/models/operation_duration_spec.rb index 4680ee7de..773439a79 100644 --- a/spec/models/operation_duration_spec.rb +++ b/spec/models/operation_duration_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/project_parameter_spec.rb b/spec/models/project_parameter_spec.rb index d33abdab4..951cb000b 100644 --- a/spec/models/project_parameter_spec.rb +++ b/spec/models/project_parameter_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 5a2688186..ac12d5f30 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/rds_spec.rb b/spec/models/rds_spec.rb index de05624f4..95d6176e3 100644 --- a/spec/models/rds_spec.rb +++ b/spec/models/rds_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/recurring_date_spec.rb b/spec/models/recurring_date_spec.rb index 24fb918dc..bca528aaa 100644 --- a/spec/models/recurring_date_spec.rb +++ b/spec/models/recurring_date_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/resource_serverspec_spec.rb b/spec/models/resource_serverspec_spec.rb index 522f23f06..134b0fbc0 100644 --- a/spec/models/resource_serverspec_spec.rb +++ b/spec/models/resource_serverspec_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/resource_spec.rb b/spec/models/resource_spec.rb index 0b6891072..081e20acc 100644 --- a/spec/models/resource_spec.rb +++ b/spec/models/resource_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/resource_status_spec.rb b/spec/models/resource_status_spec.rb index 398fffaad..e4fd6c324 100644 --- a/spec/models/resource_status_spec.rb +++ b/spec/models/resource_status_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/s3_spec.rb b/spec/models/s3_spec.rb index 88117b9f7..0c0a6fe1f 100644 --- a/spec/models/s3_spec.rb +++ b/spec/models/s3_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/schedule_spec.rb b/spec/models/schedule_spec.rb index c05234f93..8de745886 100644 --- a/spec/models/schedule_spec.rb +++ b/spec/models/schedule_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/server_state_spec.rb b/spec/models/server_state_spec.rb index dd461c583..48dce8344 100644 --- a/spec/models/server_state_spec.rb +++ b/spec/models/server_state_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/serverspec_result_detail_spec.rb b/spec/models/serverspec_result_detail_spec.rb index 88b9d494f..e9ea3089e 100644 --- a/spec/models/serverspec_result_detail_spec.rb +++ b/spec/models/serverspec_result_detail_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/serverspec_result_spec.rb b/spec/models/serverspec_result_spec.rb index 65cee07c5..399fe7b3b 100644 --- a/spec/models/serverspec_result_spec.rb +++ b/spec/models/serverspec_result_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/serverspec_schedule_spec.rb b/spec/models/serverspec_schedule_spec.rb index b8f8560de..74b64dd66 100644 --- a/spec/models/serverspec_schedule_spec.rb +++ b/spec/models/serverspec_schedule_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/serverspec_spec.rb b/spec/models/serverspec_spec.rb index 04be72d18..3d2b8a2b7 100644 --- a/spec/models/serverspec_spec.rb +++ b/spec/models/serverspec_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/snapshot_schedule_spec.rb b/spec/models/snapshot_schedule_spec.rb index 6f46dbdd2..8ce33fe1a 100644 --- a/spec/models/snapshot_schedule_spec.rb +++ b/spec/models/snapshot_schedule_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/snapshot_spec.rb b/spec/models/snapshot_spec.rb index 907d7160e..b6a12f2e8 100644 --- a/spec/models/snapshot_spec.rb +++ b/spec/models/snapshot_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/stack_spec.rb b/spec/models/stack_spec.rb index 967845263..5b25d9db7 100644 --- a/spec/models/stack_spec.rb +++ b/spec/models/stack_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/template_builder/output_spec.rb b/spec/models/template_builder/output_spec.rb index 2c6d644f2..9fab97bbb 100644 --- a/spec/models/template_builder/output_spec.rb +++ b/spec/models/template_builder/output_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/template_builder/parameter_spec.rb b/spec/models/template_builder/parameter_spec.rb index 0ca4e2bab..eae1da97f 100644 --- a/spec/models/template_builder/parameter_spec.rb +++ b/spec/models/template_builder/parameter_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/template_builder/property_spec.rb b/spec/models/template_builder/property_spec.rb index 880bf2f7b..21cfa4d66 100644 --- a/spec/models/template_builder/property_spec.rb +++ b/spec/models/template_builder/property_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/template_builder/resource/ec2/instance_spec.rb b/spec/models/template_builder/resource/ec2/instance_spec.rb index bf1fcbe89..3f4b4325d 100644 --- a/spec/models/template_builder/resource/ec2/instance_spec.rb +++ b/spec/models/template_builder/resource/ec2/instance_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/template_builder/resource_spec.rb b/spec/models/template_builder/resource_spec.rb index 22b215138..c320db658 100644 --- a/spec/models/template_builder/resource_spec.rb +++ b/spec/models/template_builder/resource_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/template_builder_spec.rb b/spec/models/template_builder_spec.rb index f62c62314..99580c9b2 100644 --- a/spec/models/template_builder_spec.rb +++ b/spec/models/template_builder_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/user_project_spec.rb b/spec/models/user_project_spec.rb index 70da20744..b807dea86 100644 --- a/spec/models/user_project_spec.rb +++ b/spec/models/user_project_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 2f0e46505..964395b77 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/ws_connector_spec.rb b/spec/models/ws_connector_spec.rb index 1e594d2fd..37d2ff5f5 100644 --- a/spec/models/ws_connector_spec.rb +++ b/spec/models/ws_connector_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/yum_schedule_spec.rb b/spec/models/yum_schedule_spec.rb index be53b8726..b2e870f02 100644 --- a/spec/models/yum_schedule_spec.rb +++ b/spec/models/yum_schedule_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/models/zabbix_spec.rb b/spec/models/zabbix_spec.rb index 3f7aad800..a29c30fff 100644 --- a/spec/models/zabbix_spec.rb +++ b/spec/models/zabbix_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/application_policy_spec.rb b/spec/policies/application_policy_spec.rb index 8411cd1b0..4474d01c5 100644 --- a/spec/policies/application_policy_spec.rb +++ b/spec/policies/application_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/cf_template_policy_spec.rb b/spec/policies/cf_template_policy_spec.rb index 449b208f1..d606fd6ab 100644 --- a/spec/policies/cf_template_policy_spec.rb +++ b/spec/policies/cf_template_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/client_policy_spec.rb b/spec/policies/client_policy_spec.rb index cfec5ea81..1985cf6a2 100644 --- a/spec/policies/client_policy_spec.rb +++ b/spec/policies/client_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/dish_policy_spec.rb b/spec/policies/dish_policy_spec.rb index 2da521015..d34f41bf6 100644 --- a/spec/policies/dish_policy_spec.rb +++ b/spec/policies/dish_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/ec2_instance_policy_spec.rb b/spec/policies/ec2_instance_policy_spec.rb index 8ea8639b2..62df430e8 100644 --- a/spec/policies/ec2_instance_policy_spec.rb +++ b/spec/policies/ec2_instance_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/infrastructure_policy_spec.rb b/spec/policies/infrastructure_policy_spec.rb index 1b6dfcbb6..cf26c579b 100644 --- a/spec/policies/infrastructure_policy_spec.rb +++ b/spec/policies/infrastructure_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/key_pair_policy_spec.rb b/spec/policies/key_pair_policy_spec.rb index cfc00ee12..672bce460 100644 --- a/spec/policies/key_pair_policy_spec.rb +++ b/spec/policies/key_pair_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/monitoring_policy_spec.rb b/spec/policies/monitoring_policy_spec.rb index e30bbb10f..2ca183c0a 100644 --- a/spec/policies/monitoring_policy_spec.rb +++ b/spec/policies/monitoring_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/node_policy_spec.rb b/spec/policies/node_policy_spec.rb index 56ef3d80a..a0651ad40 100644 --- a/spec/policies/node_policy_spec.rb +++ b/spec/policies/node_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/project_parameter_policy_spec.rb b/spec/policies/project_parameter_policy_spec.rb index 74eb4a834..6c9ca4ba9 100644 --- a/spec/policies/project_parameter_policy_spec.rb +++ b/spec/policies/project_parameter_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/project_policy_spec.rb b/spec/policies/project_policy_spec.rb index f4fe81282..e7f1f8c71 100644 --- a/spec/policies/project_policy_spec.rb +++ b/spec/policies/project_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/serverspec_policy_spec.rb b/spec/policies/serverspec_policy_spec.rb index de8809243..56be7d38b 100644 --- a/spec/policies/serverspec_policy_spec.rb +++ b/spec/policies/serverspec_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/template_builder_policy_spec.rb b/spec/policies/template_builder_policy_spec.rb index f631f7a64..d20dd6346 100644 --- a/spec/policies/template_builder_policy_spec.rb +++ b/spec/policies/template_builder_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/policies/user_policy_spec.rb b/spec/policies/user_policy_spec.rb index 82236e11a..f2698cc54 100644 --- a/spec/policies/user_policy_spec.rb +++ b/spec/policies/user_policy_spec.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index f31c4db0a..2469972f5 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 66b56e363..db984ba08 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/support/controller_macros.rb b/spec/support/controller_macros.rb index 9091aab2f..fdd16dd59 100644 --- a/spec/support/controller_macros.rb +++ b/spec/support/controller_macros.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/support/mocks/infra.rb b/spec/support/mocks/infra.rb index b804aef05..f22e03bb5 100644 --- a/spec/support/mocks/infra.rb +++ b/spec/support/mocks/infra.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/support/mocks/rds.rb b/spec/support/mocks/rds.rb index 116ab9b3b..72f1d6379 100644 --- a/spec/support/mocks/rds.rb +++ b/spec/support/mocks/rds.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/support/mocks/s3.rb b/spec/support/mocks/s3.rb index 170326286..bf96c108e 100644 --- a/spec/support/mocks/s3.rb +++ b/spec/support/mocks/s3.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/support/mocks/stack.rb b/spec/support/mocks/stack.rb index 3f794d005..012fff9c2 100644 --- a/spec/support/mocks/stack.rb +++ b/spec/support/mocks/stack.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # diff --git a/spec/support/mocks/zabbix.rb b/spec/support/mocks/zabbix.rb index bf86ecf2c..27f21cdaf 100644 --- a/spec/support/mocks/zabbix.rb +++ b/spec/support/mocks/zabbix.rb @@ -1,5 +1,5 @@ # -# Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +# Copyright (c) 2013-2017 SKYARCH NETWORKS INC. # # This software is released under the MIT License. # From a658f3e763982d2672fa8b204936e5f718eff5a9 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Tue, 17 Jan 2017 15:53:38 +0900 Subject: [PATCH 059/133] Added intellij config libraries to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 58eb42d28..880d45482 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ vendor/bower_components # MAC system files .DS_Store +.idea/ #emacs backup exclude during commit (clean files) From 342c99c1cd5cc3b7b5d303a3a820ab64cec22ba2 Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 18 Jan 2017 17:19:42 +0900 Subject: [PATCH 060/133] Prepend a prompt string to zabbix_server_id select element in edit_project page --- app/views/projects/_form.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/projects/_form.html.erb b/app/views/projects/_form.html.erb index 2eaf097f6..ce6ab9dde 100644 --- a/app/views/projects/_form.html.erb +++ b/app/views/projects/_form.html.erb @@ -35,7 +35,7 @@
    <%= f.label :zabbix_server_id, t('projects.zabbix_servers'), class: 'control-label col-sm-2' %>
    - <%= f.select :zabbix_server_id, @zabbix_servers.map{|x| [x.fqdn, x.id]}, {}, {class: "form-control"} %> + <%= f.select :zabbix_server_id, @zabbix_servers.map{|x| [x.fqdn, x.id]}, {prompt: true}, {class: "form-control"} %>
    From bddd8ff99cc10fb1158ac687b46b3586c5969287 Mon Sep 17 00:00:00 2001 From: candy Date: Wed, 18 Jan 2017 17:30:48 +0900 Subject: [PATCH 061/133] Alert if zabbix_server_id is not set in project --- app/controllers/monitorings_controller.rb | 3 ++- app/controllers/projects_controller.rb | 8 +++++++- config/locales/en.yml | 1 + config/locales/ja.yml | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/controllers/monitorings_controller.rb b/app/controllers/monitorings_controller.rb index 8492304ba..2f3c2c697 100644 --- a/app/controllers/monitorings_controller.rb +++ b/app/controllers/monitorings_controller.rb @@ -295,7 +295,8 @@ def set_infra end def set_zabbix - @zabbix_server = ZabbixServer.find(@infra.project[:zabbix_server_id]) + @zabbix_server = @infra.project.zabbix_server + raise t('projects.msg.zabbix_not_set') unless @zabbix_server @zabbix = Zabbix.new(@zabbix_server.fqdn, current_user.email, current_user.encrypted_password) end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 7008ae8da..31ec6cd07 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -106,7 +106,13 @@ def create # PATCH/PUT /projects/1 # PATCH/PUT /projects/1.json def update - @zabbix = ZabbixServer.find(project_params[:zabbix_server_id]) + zid = project_params[:zabbix_server_id] + if zid.empty? + flash[:alert] = t('projects.msg.zabbix_not_set') + redirect_to edit_project_path and return + end + + @zabbix = ZabbixServer.find(zid) if @project.update(project_params) register_hosts redirect_to projects_path(client_id: @project.client_id), diff --git a/config/locales/en.yml b/config/locales/en.yml index 669bef0e7..13b746f6f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -141,6 +141,7 @@ en: cant_delete_system: 'Unable to delete project for this system.' empty-list: 'No Project found.' delete_project: 'Are you sure you want to delete this project?' + zabbix_not_set: 'Zabbix Server used on this project is not set.' project_parameters: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 9d7144eb4..3b0c5d5b1 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -140,6 +140,7 @@ ja: cant_delete_system: 'システム用のプロジェクトは削除できません' empty-list: 'プロジェクトは空です。' delete_project: 'この案件を削除してもよろしいですか?' + zabbix_not_set: 'この案件で使用する Zabbix Server が設定されていません' project_parameters: title: 'パラメーター' From 9dda77dd2498e632d6c7b54036eaf99026d3797d Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Thu, 19 Jan 2017 11:57:40 +0900 Subject: [PATCH 062/133] AWspec generator changes for forms, javasctip methods, typescript, routes and configs --- app/assets/javascripts/servertests.js | 20 ++++++- app/assets/javascripts/zabbix_servers.js | 11 +--- app/controllers/servertests_controller.rb | 35 +++++++++++ app/models/node.rb | 58 ++++++++++--------- app/policies/servertest_policy.rb | 2 +- .../servertests/awspec_generator.html.erb | 45 ++++++++++++++ app/views/servertests/index.html.erb | 5 +- config/routes.rb | 2 + frontend/src/models/base.ts | 16 +++++ frontend/src/models/ec2_instance.ts | 6 +- frontend/src/models/serverspec.ts | 29 ---------- frontend/src/models/servertest.ts | 50 ++++++++++++++++ frontend/src/models/zabbix_server.ts | 22 ++----- frontend/src/serverspec-gen.ts | 8 +-- frontend/tsconfig.json | 2 +- 15 files changed, 221 insertions(+), 90 deletions(-) create mode 100644 app/views/servertests/awspec_generator.html.erb delete mode 100644 frontend/src/models/serverspec.ts create mode 100644 frontend/src/models/servertest.ts diff --git a/app/assets/javascripts/servertests.js b/app/assets/javascripts/servertests.js index b6545f9bc..d2e292248 100644 --- a/app/assets/javascripts/servertests.js +++ b/app/assets/javascripts/servertests.js @@ -11,7 +11,12 @@ var wrap = require('./modules/wrap'); var listen = require('./modules/listen'); var queryString = require('query-string').parse(location.search); var modal = require('modal'); -var app; + +var Servertest = require('models/servertest').default; +var vace = require('vue-ace'); +require('brace/mode/ruby'); +require('brace/theme/github'); +Vue.use(vace, false, 'ruby', '25'); Vue.component('demo-grid', require('demo-grid.js')); var servertest_url = queryString.infrastructure_id ? 'infrastructure_id='+queryString.infrastructure_id: ''; @@ -28,9 +33,12 @@ var servertestIndex = new Vue({ edit_servertest_path: null }, infra_id: queryString.infrastructure_id ? '&infrastructure_id='+queryString.infrastructure_id: '', + sel_infra_id: null, url: 'servertests?'+servertest_url, + generated: null, is_empty: false, loading: true, + generating: false, }, methods: { can_edit: function() { @@ -68,6 +76,16 @@ var servertestIndex = new Vue({ } }); document.getElementById('value').style.display=''; + }, + generate: function () { + var self = this; + self.generating = true; + + var svt = new Servertest(self.sel_infra_id); + svt.generate_awspec().done(function (data) { + self.generated = data.generated; + self.generating = false; + }).fail(modal.AlertForAjaxStdError()); } }, }); diff --git a/app/assets/javascripts/zabbix_servers.js b/app/assets/javascripts/zabbix_servers.js index 6b2d4ac61..9b8eed5ee 100644 --- a/app/assets/javascripts/zabbix_servers.js +++ b/app/assets/javascripts/zabbix_servers.js @@ -12,14 +12,9 @@ var wrap = require('./modules/wrap'); var listen = require('./modules/listen'); var md5 = require('md5'); - var queryString = require('query-string').parse(location.search); + var qs = require('query-string').parse(location.search); var modal = require('modal'); var ZabbixServer = require('models/zabbix_server').default; - var helpers = require('infrastructures/helper.js'); - var alert_success = helpers.alert_success; - var alert_danger = helpers.alert_danger; - - var app; Vue.component('demo-grid', require('demo-grid.js')); @@ -31,7 +26,7 @@ gridColumns: ['fqdn', 'version', 'details'], gridData: [], index: 'zabbix_servers', - url: 'zabbix_servers?lang='+queryString.lang, + url: 'zabbix_servers?lang='+qs.lang, is_empty: false, loading: true, new_loader: false, @@ -44,7 +39,7 @@ username: null, password: null, details: null, - lang: queryString.lang + lang: qs.lang }, control_type: null }, diff --git a/app/controllers/servertests_controller.rb b/app/controllers/servertests_controller.rb index 2518079ae..df891a288 100644 --- a/app/controllers/servertests_controller.rb +++ b/app/controllers/servertests_controller.rb @@ -8,6 +8,7 @@ class ServertestsController < ApplicationController include Concerns::InfraLogger + class ServertestError < ::StandardError; end before_action :set_servertest, only: [:update, :show, :edit, :destroy] @@ -86,6 +87,40 @@ def generator @infra = Infrastructure.find(params[:infrastructure_id]) if params[:infrastructure_id] end + # GET /serverspecs/awspec_generator + def awspec_generator + @infras = Infrastructure.all + end + + # GET /servertests/generate_awspec + def generate_awspec + @infra = Infrastructure.find(params[:infrastructure_id]) if params[:infrastructure_id] + + ws = WSConnector.new('awspec-generate', @infra.id) + ruby_cmd = File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name']) + + cmd = [] + cmd << "AWS_ACCESS_KEY_ID=#{@infra.access_key}" + cmd << "AWS_REGION=#{@infra.region}" + cmd << "AWS_SECRET_ACCESS_KEY=#{@infra.secret_access_key}" + cmd << ruby_cmd << "-S awspec generate ec2 #{@infra.ec2.describe_vpcs[:vpcs][0].vpc_id}" + cmd = cmd.flatten.reject(&:blank?).join(" ") + generated = %!require 'awspec_helper'\n\n! + Thread.new_with_db do + begin + gen, = Node.exec_command(cmd, ServertestError) + generated += gen + ws.push_as_json({status: true, message: I18n.t('zabbix_servers.msg.created'), generated: generated}) + rescue => ex + generated = ex.to_s + ws.push_as_json({status: false, message: ex.message}) + render status: 404 and return + end + end + + render nothing: true, status: 200 and return + end + # DELETE /serverspecs/1 def destroy infra_id = @servertest.infrastructure_id diff --git a/app/models/node.rb b/app/models/node.rb index e09a79009..8e8e19bc1 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -187,33 +187,9 @@ def run_serverspec(infra_id, servertest_ids, selected_auto_generated) end # create result - result = JSON::parse(out, symbolize_names: true) - result[:examples].each do |e| - e[:exception].delete(:backtrace) if e[:exception] - end - result[:status] = result[:summary][:failure_count].zero? - result[:status_text] = - if result[:status] - if result[:summary][:pending_count].zero? - 'success' - else - 'pending' - end - else - 'failed' - end - - - case result[:status_text] - when 'pending' - result[:message] = result[:examples].select{|x| x[:status] == 'pending'}.map{|x| x[:full_description]+"\n"+x[:command]+"\n"+x[:exception][:message]}.join("\n") - result[:short_msg] = result[:examples].select{|x| x[:status] == 'failed'},map{|x| x[:full_description]}.join("\n") - when 'failed' - result[:message] = result[:examples].select{|x| x[:status] == 'failed'}.map{|x| x[:full_description]+"\n"+x[:command]+"\n"+x[:exception][:message]}.join("\n") - result[:short_msg] = result[:examples].select{|x| x[:status] == 'failed'}.map{|x| x[:full_description]}.join("\n") - end - + result = generate_result(out) Resource.find_by(physical_id: @name).status.servertest.update(value: result[:status_text]) + return result rescue => ex Resource.find_by(physical_id: @name).status.servertest.failed! @@ -352,5 +328,35 @@ def exec_knife_winrm(command, infra) # ec2key.close_temp end + def generate_result(out) + result = JSON::parse(out, symbolize_names: true) + result[:examples].each do |e| + e[:exception].delete(:backtrace) if e[:exception] + end + result[:status] = result[:summary][:failure_count].zero? + result[:status_text] = + if result[:status] + if result[:summary][:pending_count].zero? + 'success' + else + 'pending' + end + else + 'failed' + end + + + case result[:status_text] + when 'pending' + result[:message] = result[:examples].select{|x| x[:status] == 'pending'}.map{|x| x[:full_description]+"\n"+x[:command]+"\n"+x[:exception][:message]}.join("\n") + result[:short_msg] = result[:examples].select{|x| x[:status] == 'failed'},map{|x| x[:full_description]}.join("\n") + when 'failed' + result[:message] = result[:examples].select{|x| x[:status] == 'failed'}.map{|x| x[:full_description]+"\n"+x[:command]+"\n"+x[:exception][:message]}.join("\n") + result[:short_msg] = result[:examples].select{|x| x[:status] == 'failed'}.map{|x| x[:full_description]}.join("\n") + end + + return result + end + end diff --git a/app/policies/servertest_policy.rb b/app/policies/servertest_policy.rb index 6d49ecca5..2c434e955 100644 --- a/app/policies/servertest_policy.rb +++ b/app/policies/servertest_policy.rb @@ -17,7 +17,7 @@ class ServertestPolicy < ApplicationPolicy end end - %i[new? update? create? edit? destroy? select? results? run_serverspec? create_for_rds? schedule? generator?].each do |action| + %i[new? update? create? edit? generate_awspec? destroy? select? results? run_serverspec? create_for_rds? schedule? generator? awspec_generator?].each do |action| define_method(action) do if record.infrastructure user.allow?(record.infrastructure) && user.admin? diff --git a/app/views/servertests/awspec_generator.html.erb b/app/views/servertests/awspec_generator.html.erb new file mode 100644 index 000000000..9fbac0d0b --- /dev/null +++ b/app/views/servertests/awspec_generator.html.erb @@ -0,0 +1,45 @@ +<% provide(:title, I18n.t('serverspecs.generator.title')) %> + + +
    +
    + +
    +
    + + + + +
    +
    +
    +
    + + <%= t 'common.msg.loading' %> +
    +
    +
    + +
    + +
    +
    + +
    + + <%= link_to t('.cancel', :default => t("helpers.links.cancel")), + servertests_path(infrastructure_id: @infra.try(:id)), class: 'btn-default btn' %> +
    +
    diff --git a/app/views/servertests/index.html.erb b/app/views/servertests/index.html.erb index af9017453..c998825d3 100644 --- a/app/views/servertests/index.html.erb +++ b/app/views/servertests/index.html.erb @@ -69,9 +69,12 @@ <%= link_to t('.new', default: t('serverspecs.btn.add')), new_servertest_path(infrastructure_id: @infrastructure_id), class: 'btn btn-primary btn-small' %> - <%= link_to t('serverspecs.btn.generator'), + <%= link_to t('serverspecs.btn.serverspec_generator'), generator_servertests_path(infrastructure_id: @infrastructure_id), class: 'btn btn-default btn-small' %> + <%= link_to t('serverspecs.btn.awspec_generator'), + awspec_generator_servertests_path(infrastructure_id: @infrastructure_id), + class: 'btn btn-default btn-small' %> <% end %> diff --git a/config/routes.rb b/config/routes.rb index cfc96bfa0..64cf0aab4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -114,6 +114,8 @@ put 'create_for_rds' post 'schedule' get 'generator' + get 'awspec_generator' + get 'generate_awspec' end end diff --git a/frontend/src/models/base.ts b/frontend/src/models/base.ts index 76cad6440..4f8bb1ba2 100644 --- a/frontend/src/models/base.ts +++ b/frontend/src/models/base.ts @@ -34,4 +34,20 @@ export default class ModelBase { protected rejectF(dfd: JQueryDeferred) { return (xhr: XMLHttpRequest) => dfd.reject(xhr.responseText); } + + // ec2 のステータス変更をWebSocketで待ち受けて、dfdをrejectかresolveする function を返す + protected wait_change_status(id: any, dfd: JQueryDeferred, scope: string): () => void { + return () => { + const ws = ws_connector(scope, id); + ws.onmessage = function (msg) { + const d = JSON.parse(msg.data); + if (!d.status) { + dfd.reject(d.message); + } else { + dfd.resolve(d); + } + ws.close(); + }; + }; + } } diff --git a/frontend/src/models/ec2_instance.ts b/frontend/src/models/ec2_instance.ts index f77d1c47b..f9f89d4fd 100644 --- a/frontend/src/models/ec2_instance.ts +++ b/frontend/src/models/ec2_instance.ts @@ -282,7 +282,7 @@ export default class EC2Instance extends ModelBase { } // ec2 のステータス変更をWebSocketで待ち受けて、dfdをrejectかresolveする function を返す - private wait_change_status(dfd: JQueryDeferred): () => void { + private wait_change_status_ec2(dfd: JQueryDeferred): () => void { return () => { const ws = ws_connector('ec2_status', this.physical_id); ws.onmessage = function (msg) { @@ -308,7 +308,7 @@ export default class EC2Instance extends ModelBase { start_ec2(): JQueryPromise { const dfd = $.Deferred(); (EC2Instance.ajax_ec2).start(this.params) - .done(this.wait_change_status(dfd)) + .done(this.wait_change_status_ec2(dfd)) .fail(this.rejectF(dfd)); return dfd.promise(); @@ -317,7 +317,7 @@ export default class EC2Instance extends ModelBase { stop_ec2(): JQueryPromise { const dfd = $.Deferred(); (EC2Instance.ajax_ec2).stop(this.params) - .done(this.wait_change_status(dfd)) + .done(this.wait_change_status_ec2(dfd)) .fail(this.rejectF(dfd)); return dfd.promise(); diff --git a/frontend/src/models/serverspec.ts b/frontend/src/models/serverspec.ts deleted file mode 100644 index e4f2abb4c..000000000 --- a/frontend/src/models/serverspec.ts +++ /dev/null @@ -1,29 +0,0 @@ -// -// Copyright (c) 2013-2016 SKYARCH NETWORKS INC. -// -// This software is released under the MIT License. -// -// http://opensource.org/licenses/mit-license.php -// - -/// - -import ModelBase from './base'; - -export default class Serverspec extends ModelBase { - constructor() {super(); } - - static ajax = new AjaxSet.Resources('serverspecs'); - - create(fname: string, value: string, infra_id: number): JQueryPromise { - return this.WrapAndResolveReject(() => - Serverspec.ajax.create({ - serverspec: { - name: fname, - value: value, - infrastructure_id: infra_id, - } - }) - ); - } -} diff --git a/frontend/src/models/servertest.ts b/frontend/src/models/servertest.ts new file mode 100644 index 000000000..bc88ac2c7 --- /dev/null +++ b/frontend/src/models/servertest.ts @@ -0,0 +1,50 @@ +// +// Copyright (c) 2013-2016 SKYARCH NETWORKS INC. +// +// This software is released under the MIT License. +// +// http://opensource.org/licenses/mit-license.php +// + +/// + +import ModelBase from './base'; + +export default class Servertest extends ModelBase { + constructor(public infra_id: number) {super(); } + + static ajax = new AjaxSet.Resources('servertests'); + + create(fname: string, value: string, category: string): JQueryPromise { + return this.WrapAndResolveReject(() => + Servertest.ajax.create({ + servertest: { + name: fname, + value: value, + infrastructure_id: this.infra_id, + category: category, // Default for serverspec Generator + } + }) + ); + } + + /** + * @method generate_awspec + * @return {$.Promise} + */ + + generate_awspec(): JQueryPromise { + const dfd = $.Deferred(); + (Servertest.ajax).generate_awspec({infrastructure_id: this.infra_id}) + .done(this.wait_change_status( + this.infra_id, + dfd, + 'awspec-generate' + )) + .fail(this.rejectF(dfd)); + + return dfd.promise(); + } +} + +Servertest.ajax.add_collection('generate_awspec', 'GET'); diff --git a/frontend/src/models/zabbix_server.ts b/frontend/src/models/zabbix_server.ts index 06aa18783..efc2602ba 100644 --- a/frontend/src/models/zabbix_server.ts +++ b/frontend/src/models/zabbix_server.ts @@ -22,7 +22,11 @@ export default class ZabbixServer extends ModelBase { lang: zabbix_server.lang, commit: "Create Zabbix Server", }) - .done(this.wait_change_status(dfd)) + .done(this.wait_change_status( + this.session_id, + dfd, + 'notifications' + )) .fail(this.rejectF(dfd)); return dfd.promise(); @@ -34,19 +38,5 @@ export default class ZabbixServer extends ModelBase { ); } - // ec2 のステータス変更をWebSocketで待ち受けて、dfdをrejectかresolveする function を返す - private wait_change_status(dfd: JQueryDeferred): () => void { - return () => { - const ws = ws_connector('notifications', this.session_id); - ws.onmessage = function (msg) { - const d = JSON.parse(msg.data); - if (!d.status) { - dfd.reject(d.message); - } else { - dfd.resolve(d); - } - ws.close(); - }; - }; - } + } diff --git a/frontend/src/serverspec-gen.ts b/frontend/src/serverspec-gen.ts index b78504804..34cde850e 100644 --- a/frontend/src/serverspec-gen.ts +++ b/frontend/src/serverspec-gen.ts @@ -8,7 +8,7 @@ import * as Gen from "serverspec-generator"; import {Prompt, Alert, AlertForAjaxStdError} from './modal'; -import Serverspec from './models/serverspec'; +import Servertest from './models/servertest'; import * as qs from 'query-string'; const app = new Gen.App([], Gen.Info.value); @@ -16,16 +16,16 @@ console.log(app); $(document).on('click', '.save-serverspec-btn', () => { Prompt('Save Serverspec', "filename").then((fname) => { - const s = new Serverspec(); const infra_id_str: string = qs.parse(location.search).infrastructure_id; const infra_id: number = infra_id_str ? parseInt(infra_id_str) : null; + const s = new Servertest(infra_id); const code = 'require "serverspec_helper"\n\n' + app.rubyCode; - return s.create(fname, code, infra_id); + return s.create(fname, code, 'serverspec'); }).then( data => Alert(t('serverspecs.serverspec'), data), AlertForAjaxStdError() ).then(() => { - location.href = `/serverspecs${location.search}`; + location.href = `/servertests${location.search}`; }); }); diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index cec541e19..45971fe63 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -26,7 +26,7 @@ "src/models/rds_instance.ts", "src/models/resource.ts", "src/models/s3_bucket.ts", - "src/models/serverspec.ts", + "src/models/servertest.ts", "src/models/snapshot.ts", "src/models/zabbix_server.ts" ] From 2c41d1ba6bed1c0630ca29d7a656b56ac7289f86 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Thu, 19 Jan 2017 16:49:45 +0900 Subject: [PATCH 063/133] Save generated awspec to backend and redirect message after --- app/assets/javascripts/servertests.js | 57 +++++++++++++------ .../servertests/awspec_generator.html.erb | 22 ++++--- 2 files changed, 55 insertions(+), 24 deletions(-) diff --git a/app/assets/javascripts/servertests.js b/app/assets/javascripts/servertests.js index d2e292248..154d6f0c2 100644 --- a/app/assets/javascripts/servertests.js +++ b/app/assets/javascripts/servertests.js @@ -24,22 +24,25 @@ var servertest_url = queryString.infrastructure_id ? 'infrastructure_id='+queryS var servertestIndex = new Vue({ el: '#indexElement', data: { - searchQuery: '', - gridColumns: ['servertest_name','description', 'category'], - gridData: [], - index: 'servertests', - picked: { - servertest_path: null, - edit_servertest_path: null + searchQuery: '', + gridColumns: ['servertest_name','description', 'category'], + gridData: [], + index: 'servertests', + picked: { + servertest_path: null, + edit_servertest_path: null + }, + infra_id: queryString.infrastructure_id ? '&infrastructure_id='+queryString.infrastructure_id: '', + sel_infra_id: null, + url: 'servertests?'+servertest_url, + is_empty: false, + loading: true, + generating: false, + awspec:{ + value: null, + fname: null + } }, - infra_id: queryString.infrastructure_id ? '&infrastructure_id='+queryString.infrastructure_id: '', - sel_infra_id: null, - url: 'servertests?'+servertest_url, - generated: null, - is_empty: false, - loading: true, - generating: false, - }, methods: { can_edit: function() { return this.picked.edit_servertest_path === null ? true : false; @@ -83,11 +86,33 @@ var servertestIndex = new Vue({ var svt = new Servertest(self.sel_infra_id); svt.generate_awspec().done(function (data) { - self.generated = data.generated; + self.awspec.value = data.generated; self.generating = false; }).fail(modal.AlertForAjaxStdError()); + }, + create_awspec: function () { + var self = this; + var params = self.awspec; + self.generating = true; + + var svt = new Servertest(self.sel_infra_id); + svt.create(params.fname, params.value, 'awspec').done(function (data) { + modal.Alert(t('servertest.servertest'), data, 'success').done(function(){ + location.href = `/servertests?infrastructure_id=${self.sel_infra_id}${location.search}`; + }); + } + ).fail(function (msg) { + modal.Alert(t('servertest.servertest'), msg, 'danger'); + self.generating = false; + }); } }, + computed: { + required_filed: function () { + var awspec = this.awspec; + return (awspec.value && awspec.fname); + }, + }, }); diff --git a/app/views/servertests/awspec_generator.html.erb b/app/views/servertests/awspec_generator.html.erb index 9fbac0d0b..96733c067 100644 --- a/app/views/servertests/awspec_generator.html.erb +++ b/app/views/servertests/awspec_generator.html.erb @@ -14,31 +14,37 @@
    - +
    -
    +
    - <%= t 'common.msg.loading' %> -
    + <%= t 'common.msg.loading' %> +
    -
    +
    - + +
    +
    +
    + +
    +
    - + <%= link_to t('.cancel', :default => t("helpers.links.cancel")), servertests_path(infrastructure_id: @infra.try(:id)), class: 'btn-default btn' %>
    From 76cd1908962de1912ca39fa5c5a4624e578573c3 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Thu, 19 Jan 2017 17:59:58 +0900 Subject: [PATCH 064/133] Localization for awspec servertests --- app/assets/javascripts/servertests.js | 8 +++- app/controllers/servertests_controller.rb | 42 +++++++++---------- .../servertests/awspec_generator.html.erb | 25 +++++++---- app/views/servertests/index.html.erb | 8 ++-- config/locales/en.yml | 9 +++- config/locales/ja.yml | 19 +++++---- 6 files changed, 66 insertions(+), 45 deletions(-) diff --git a/app/assets/javascripts/servertests.js b/app/assets/javascripts/servertests.js index 154d6f0c2..953e02fc0 100644 --- a/app/assets/javascripts/servertests.js +++ b/app/assets/javascripts/servertests.js @@ -97,12 +97,12 @@ var servertestIndex = new Vue({ var svt = new Servertest(self.sel_infra_id); svt.create(params.fname, params.value, 'awspec').done(function (data) { - modal.Alert(t('servertest.servertest'), data, 'success').done(function(){ + modal.Alert(t('servertests.servertest'), data, 'success').done(function(){ location.href = `/servertests?infrastructure_id=${self.sel_infra_id}${location.search}`; }); } ).fail(function (msg) { - modal.Alert(t('servertest.servertest'), msg, 'danger'); + modal.Alert(t('servertests.servertest'), msg, 'danger'); self.generating = false; }); } @@ -113,6 +113,10 @@ var servertestIndex = new Vue({ return (awspec.value && awspec.fname); }, }, + ready: function() { + var self = this; + self.loading = false; + } }); diff --git a/app/controllers/servertests_controller.rb b/app/controllers/servertests_controller.rb index df891a288..53bed799a 100644 --- a/app/controllers/servertests_controller.rb +++ b/app/controllers/servertests_controller.rb @@ -19,7 +19,7 @@ class ServertestError < ::StandardError; end authorize(@serverspec || Servertest.new(infrastructure_id: have_infra?)) end - # GET /serverspecs + # GET /servertests def index @infrastructure_id = params[:infrastructure_id] page = params[:page] @@ -33,7 +33,7 @@ def index end end - # GET /serverspecs/new + # GET /servertests/new def new infra_id = params[:infrastructure_id] @@ -41,15 +41,15 @@ def new @servertest.value = %!require 'spec_helper'\n\n! end - # GET /serverspecs/1 + # GET /servertests/1 def show render text: @servertest.value end - # POST /serverspecs/1 + # POST /servertests/1 def update if @servertest.update(global_servertest_params) - redirect_to servertests_path, notice: I18n.t('serverspecs.msg.updated') + redirect_to servertests_path, notice: I18n.t('servertests.msg.updated') else flash.now[:alert] = @servertest.errors[:value] if @servertest.errors[:value] render action: 'edit' @@ -71,23 +71,23 @@ def create end if ajax? - render text: I18n.t('serverspecs.msg.created') and return + render text: I18n.t('servertests.msg.created') and return else redirect_to servertests_path(infrastructure_id: infra_id), - notice: I18n.t('serverspecs.msg.created') + notice: I18n.t('servertests.msg.created') end end - # GET /serverspecs/1/edit + # GET /servertests/1/edit def edit end - # GET /serverspecs/generator + # GET /servertests/generator def generator @infra = Infrastructure.find(params[:infrastructure_id]) if params[:infrastructure_id] end - # GET /serverspecs/awspec_generator + # GET /servertests/awspec_generator def awspec_generator @infras = Infrastructure.all end @@ -121,12 +121,12 @@ def generate_awspec render nothing: true, status: 200 and return end - # DELETE /serverspecs/1 + # DELETE /servertests/1 def destroy infra_id = @servertest.infrastructure_id @servertest.destroy - redirect_to servertests_path(infrastructure_id: infra_id), notice: I18n.t('serverspecs.msg.deleted') + redirect_to servertests_path(infrastructure_id: infra_id), notice: I18n.t('servertests.msg.deleted') end # GET /servertests/select @@ -137,8 +137,8 @@ def select resource = Resource.where(infrastructure_id: infra_id).find_by(physical_id: physical_id) @selected_servertest_ids = resource.all_servertest_ids - serverspecs = Servertest.for_infra_serverspec(infra_id) - @individual_servertests, @global_servertests = serverspecs.partition{|spec| spec.infrastructure_id } + servertests = Servertest.for_infra_serverspec(infra_id) + @individual_servertests, @global_servertests = servertests.partition{|spec| spec.infrastructure_id } node = Node.new(physical_id) @is_available_auto_generated = node.have_auto_generated @@ -161,7 +161,7 @@ def results # TODO: refactor - # POST /serverspecs/run_serverspec + # POST /servertests/run_serverspec def run_serverspec physical_id = params.require(:physical_id) infra_id = params.require(:infra_id) @@ -183,11 +183,11 @@ def run_serverspec case resp[:status_text] when 'success' - render_msg = I18n.t('serverspecs.msg.success', physical_id: physical_id) + render_msg = I18n.t('servertests.msg.success', physical_id: physical_id) when 'pending' - render_msg = I18n.t('serverspecs.msg.pending', physical_id: physical_id, pending_specs: resp[:short_msg]) + render_msg = I18n.t('servertests.msg.pending', physical_id: physical_id, pending_specs: resp[:short_msg]) when 'failed' - render_msg = I18n.t('serverspecs.msg.failure', physical_id: physical_id, failure_specs: resp[:short_msg]) + render_msg = I18n.t('servertests.msg.failure', physical_id: physical_id, failure_specs: resp[:short_msg]) end ServertestResult.create( @@ -201,7 +201,7 @@ def run_serverspec # Generate serverspec to connect to RDS instance - # PUT /serverspecs/create_for_rds + # PUT /servertests/create_for_rds def create_for_rds infra_id = params.require(:infra_id) physical_id = params.require(:physical_id) @@ -215,10 +215,10 @@ def create_for_rds Servertest.create_rds(rds, username, password, infra_id, database) - render text: I18n.t('serverspecs.msg.generated'), status: 201 and return + render text: I18n.t('servertests.msg.generated'), status: 201 and return end - # POST /serverspecs/schedule + # POST /servertests/schedule def schedule physical_id = params.require(:physical_id) infra_id = params.require(:infra_id) diff --git a/app/views/servertests/awspec_generator.html.erb b/app/views/servertests/awspec_generator.html.erb index 96733c067..9c503241d 100644 --- a/app/views/servertests/awspec_generator.html.erb +++ b/app/views/servertests/awspec_generator.html.erb @@ -1,43 +1,49 @@ -<% provide(:title, I18n.t('serverspecs.generator.title')) %> +<% provide(:title, I18n.t('servertests.btn.awspec_generator')) %> -
    +
    +
    + + <%=t('common.msg.loading')%> +
    +
    +
    - +
    - +
    - <%= t 'common.msg.loading' %> + <%= t 'servertests.msg.generating' %>
    - +
    - +
    @@ -49,3 +55,4 @@ servertests_path(infrastructure_id: @infra.try(:id)), class: 'btn-default btn' %>
    +
    diff --git a/app/views/servertests/index.html.erb b/app/views/servertests/index.html.erb index c998825d3..adc2ca8d8 100644 --- a/app/views/servertests/index.html.erb +++ b/app/views/servertests/index.html.erb @@ -54,7 +54,7 @@
    - <%= t 'serverspecs.msg.empty-results' %> + <%= t 'servertests.msg.empty-results' %>
    @@ -66,13 +66,13 @@ <% if allow_change %> - <%= link_to t('.new', default: t('serverspecs.btn.add')), + <%= link_to t('.new', default: t('servertests.btn.add')), new_servertest_path(infrastructure_id: @infrastructure_id), class: 'btn btn-primary btn-small' %> - <%= link_to t('serverspecs.btn.serverspec_generator'), + <%= link_to t('servertests.btn.serverspec_generator'), generator_servertests_path(infrastructure_id: @infrastructure_id), class: 'btn btn-default btn-small' %> - <%= link_to t('serverspecs.btn.awspec_generator'), + <%= link_to t('servertests.btn.awspec_generator'), awspec_generator_servertests_path(infrastructure_id: @infrastructure_id), class: 'btn btn-default btn-small' %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 5b650ba44..b4d7bf443 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -347,7 +347,9 @@ en: add: 'Add Servertest' create: 'Create Servertest' run: 'Run Servertests' - generator: 'Servertest Generator' + serverspec_generator: 'Servertest Generator' + awspec_generator: 'AWSpec Generator' + generate: 'Generate' msg: created: 'Servertest was successfully created.' updated: 'Servertest was successfully updated.' @@ -357,10 +359,13 @@ en: pending: 'Serverspec for %{physical_id} is successfully finished. Pending specs: %{pending_specs}' failure: 'Serverspec for %{physical_id} has failed. failure specs: %{failure_specs}' generated: 'Serverspec is successfully generated.' - delete_serverspec: 'Are you sure you want to delete this Servertest?' + delete_servertest: 'Are you sure you want to delete this Servertest?' empty-results: 'No results found.' auto_generated_enabled_html: 'This Serverspec was created automatically by "serverspec-handler" cookbook.' auto_generated_disabled_html: 'This option is available only when runlist includes "serverspec-handler" cookbook.' + generated: 'Generated file' + generating: 'Generating file spec ...' + select_infra: 'Select Infrastructure' generator: title: 'Serverspec Generator' name: 'name' diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 87caf4d51..1ecfbfb31 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -328,8 +328,8 @@ ja: servertests: name: 'Servertest 名' - serverspecs: 'Serverspecs' - serverspec: 'Serverspec' + servertests: 'Servertests' + servertest: 'Servertest' description: '詳細' value: '内容' auto_generated: '自動生成された Serverspec' @@ -345,20 +345,25 @@ ja: add: 'Servertest の追加' create: 'Serverspec の作成' run: 'Serverspec の実行' - generator: 'Serverspec ジェネレータ' + serverspec_generator: 'Serverspec ジェネレータ' + awspec_generator: 'AWSpec ジェネレータ' + generate: 'ジェネレータ' msg: - created: 'Serverspec が正常に追加されました' - updated: 'Serverspec が正常に更新されました' - deleted: 'Serverspec が正常に削除されました' + created: 'Servertest が正常に追加されました' + updated: 'Servertest が正常に更新されました' + deleted: 'Servertest が正常に削除されました' parseerr: '入力された Serverspec に間違いがあります' success: '%{physical_id} の Serverspec が正常に終了しました' pending: '%{physical_id} の Serverspec が正常に終了しました。ただし Pending なスペックがあります。 %{pending_specs}' failure: '%{physical_id} の Serverspec が失敗しました。 失敗したスペック: %{failure_specs}' generated: 'Serverspec は正常に作成されました。' empty-results: '結果が見つかりませんでした。' - delete_serverspec: 'この Serverspec を削除してもよろしいですか?' + delete_servertest: 'この Servertest を削除してもよろしいですか?' auto_generated_enabled_html: 'この Serverspec は Cookbook "serverspec-handler" により自動生成されます' auto_generated_disabled_html: 'このオプションは Cookbook "serverspec-handler" が Runlist に含まれている場合に使用できます' + generated: '生成されたファイル' + generating: 'ファイル仕様の生成 ...' + select_infra: 'インフラストラクチャの選択' generator: title: 'Serverspec ジェネレータ' name: '名前' From 44970fa0ff49bba29b5ce8f25d7d5d16883bc7f1 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Fri, 20 Jan 2017 12:07:38 +0900 Subject: [PATCH 065/133] Fixed jbuilder mapping for select serverspec feature --- app/views/servertests/select.jbuilder | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/servertests/select.jbuilder b/app/views/servertests/select.jbuilder index 18a2ab6f8..254bb3304 100644 --- a/app/views/servertests/select.jbuilder +++ b/app/views/servertests/select.jbuilder @@ -1,5 +1,5 @@ json.available_auto_generated @is_available_auto_generated -json.individuals @individual_serverspecs -json.globals @global_serverspecs -json.selected_ids @selected_serverspec_ids -json.schedule @serverspec_schedule +json.individuals @individual_servertests +json.globals @global_servertests +json.selected_ids @selected_servertest_ids +json.schedule @servertest_schedule From 6dded0df7ebc9f04a3c185e0209e10357ecf641f Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 25 Jan 2017 14:56:15 +0900 Subject: [PATCH 066/133] Added typings file and instal typings diffinition manager. And set reference paths --- frontend/ajax_set.d.ts | 3 ++- frontend/declares.d.ts | 2 +- frontend/gulpfile.js | 16 ++++++++-------- frontend/package.json | 8 ++++---- frontend/tsconfig.json | 10 +++++----- frontend/tsd.json | 27 --------------------------- 6 files changed, 20 insertions(+), 46 deletions(-) delete mode 100644 frontend/tsd.json diff --git a/frontend/ajax_set.d.ts b/frontend/ajax_set.d.ts index 2e6864481..8618efc94 100644 --- a/frontend/ajax_set.d.ts +++ b/frontend/ajax_set.d.ts @@ -6,7 +6,8 @@ // http://opensource.org/licenses/mit-license.php // -/// +/// + declare module AjaxSet { class Base { diff --git a/frontend/declares.d.ts b/frontend/declares.d.ts index 84a47eb76..17126c2f4 100644 --- a/frontend/declares.d.ts +++ b/frontend/declares.d.ts @@ -7,7 +7,7 @@ // /// -/// +/// // I18n.t declare function t(path: string): string; diff --git a/frontend/gulpfile.js b/frontend/gulpfile.js index 803453cdf..26a8bae99 100644 --- a/frontend/gulpfile.js +++ b/frontend/gulpfile.js @@ -1,16 +1,16 @@ var gulp = require('gulp'); var ts = require('gulp-typescript'); -var tsd = require('gulp-tsd'); +var gulpTypings = require("gulp-typings"); + var tsconfig = require('gulp-tsconfig-files'); var tslint = require('gulp-tslint'); -gulp.task('tsd', function (callback) { - tsd({ - command: 'reinstall', - config: 'tsd.json', - }, callback); -}); +gulp.task("type",function(){ + var stream = gulp.src("./typings.json") + .pipe(gulpTypings()); //will install all typingsfiles in pipeline. + return stream; // by returning stream gulp can listen to events from the stream and knows when it is finished. +}); gulp.task('ts', function () { var tsProject = ts.createProject('tsconfig.json'); @@ -25,7 +25,7 @@ gulp.task('watch', function () { }); gulp.task('tsconfig', function () { - gulp.src(['src/**/*.ts', 'test/**/*.ts']) + gulp.src(['src/**/*.ts', 'test/**/*.ts', 'typings/**/*.ts']) .pipe(tsconfig({newline_eof: true})); }); diff --git a/frontend/package.json b/frontend/package.json index 9758ea427..27c0781ad 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -21,7 +21,7 @@ "md5": "^2.0.0", "query-string": "^2.4.1", "serverspec-generator": "^1.0.0", - "vue": "^2.0.3", + "vue": "~1.0.24", "vue-ace": "0.0.1", "pdfmake-browserified": "^0.1.4", "aliasify": "^1.9.0", @@ -31,11 +31,11 @@ "devDependencies": { "gulp": "^3.9.0", "gulp-tsconfig-files": "icholy/gulp-tsconfig-files", - "gulp-tsd": "0.0.4", "gulp-tslint": "^3.2.0", "gulp-typescript": "^2.9.2", - "tsd": "^0.6.3", + "gulp-typings": "^2.0.4", "tslint": "^2.4.2", - "typescript": "~1.6.2" + "typescript": "^1.6.2", + "typings": "^2.1.0" } } diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index 1c972c996..bd08aa0ef 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -13,10 +13,6 @@ "src/complete_project_parameter.ts", "src/helper.ts", "src/modal.ts", - "src/project_parameters.ts", - "src/server_status.ts", - "src/serverspec-gen.ts", - "src/users_admin.ts", "src/models/base.ts", "src/models/cf_template.ts", "src/models/dish.ts", @@ -27,6 +23,10 @@ "src/models/resource.ts", "src/models/s3_bucket.ts", "src/models/serverspec.ts", - "src/models/snapshot.ts" + "src/models/snapshot.ts", + "src/project_parameters.ts", + "src/server_status.ts", + "src/serverspec-gen.ts", + "src/users_admin.ts" ] } diff --git a/frontend/tsd.json b/frontend/tsd.json deleted file mode 100644 index ee61b38da..000000000 --- a/frontend/tsd.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": "v4", - "repo": "borisyankov/DefinitelyTyped", - "ref": "master", - "path": "typings", - "bundle": "typings/tsd.d.ts", - "installed": { - "jquery/jquery.d.ts": { - "commit": "32029fcb4e1a3ef8968711b545d77b584435729d" - }, - "jqueryui/jqueryui.d.ts": { - "commit": "32029fcb4e1a3ef8968711b545d77b584435729d" - }, - "lodash/lodash.d.ts": { - "commit": "32029fcb4e1a3ef8968711b545d77b584435729d" - }, - "vue/vue.d.ts": { - "commit": "32029fcb4e1a3ef8968711b545d77b584435729d" - }, - "bootstrap/bootstrap.d.ts": { - "commit": "32029fcb4e1a3ef8968711b545d77b584435729d" - }, - "query-string/query-string.d.ts": { - "commit": "923c5431d9447db9d5cf41adc5914e3c94c1ff10" - } - } -} From 2cb5a57a7e5426201acf16a94bf92354337cba04 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 25 Jan 2017 14:56:33 +0900 Subject: [PATCH 067/133] Added typings.shon files --- frontend/typings.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 frontend/typings.json diff --git a/frontend/typings.json b/frontend/typings.json new file mode 100644 index 000000000..c445364ad --- /dev/null +++ b/frontend/typings.json @@ -0,0 +1,12 @@ +{ + "name": "SkyHopper", + "dependencies": {}, + "globalDependencies": { + "bootstrap": "registry:dt/bootstrap#3.3.5+20160726204056", + "jquery": "github:DefinitelyTyped/DefinitelyTyped/jquery/jquery.d.ts#c8a69b0b0c71cc00d4ada94a4420fb037b3cc9cd", + "jqueryui": "registry:dt/jqueryui#1.11.0+20161214061125", + "lodash": "github:DefinitelyTyped/DefinitelyTyped/lodash/lodash.d.ts#32029fcb4e1a3ef8968711b545d77b584435729d", + "query-string": "github:DefinitelyTyped/DefinitelyTyped/query-string/query-string.d.ts#923c5431d9447db9d5cf41adc5914e3c94c1ff10", + "vue": "registry:dt/vue#1.0.21+20160929090511" + } +} From 778c89df2ab5620290a39f408961214834cbbd39 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 25 Jan 2017 16:40:58 +0900 Subject: [PATCH 068/133] Added bluebird package for promises library and updated skyhopper installation document --- doc/installation/en/skyhopper.md | 2 +- doc/installation/skyhopper.md | 2 +- frontend/package.json | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/doc/installation/en/skyhopper.md b/doc/installation/en/skyhopper.md index f034d558d..75b7cff76 100644 --- a/doc/installation/en/skyhopper.md +++ b/doc/installation/en/skyhopper.md @@ -199,7 +199,7 @@ $ bower install $ sudo npm i -g gulp $ cd frontend/ $ npm i -$ gulp tsd +$ gulp type // TSD to typings $ gulp ts $ cd .. ``` diff --git a/doc/installation/skyhopper.md b/doc/installation/skyhopper.md index 1e5948202..9c0836dd8 100644 --- a/doc/installation/skyhopper.md +++ b/doc/installation/skyhopper.md @@ -199,7 +199,7 @@ $ bower install $ sudo npm i -g gulp $ cd frontend/ $ npm i -$ gulp tsd +$ gulp type //TSD to typings $ gulp ts $ cd .. ``` diff --git a/frontend/package.json b/frontend/package.json index 27c0781ad..ae423e958 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,22 +11,23 @@ "test": "karma start --single-run" }, "dependencies": { + "aliasify": "^1.9.0", + "bluebird": "^3.4.7", "bootstrap": "^3.3.6", "bower": "^1.5.3", "brace": "0.7.0", "browserify": "^ 13.0.0", "browserify-incremental": "^3.0.1", + "clipboard": "^1.5.8", "jquery-textcomplete": "^0.8.1", + "jszip": "^3.0.0", "lodash": "^3.10.1", "md5": "^2.0.0", + "pdfmake-browserified": "^0.1.4", "query-string": "^2.4.1", "serverspec-generator": "^1.0.0", "vue": "~1.0.24", - "vue-ace": "0.0.1", - "pdfmake-browserified": "^0.1.4", - "aliasify": "^1.9.0", - "clipboard": "^1.5.8", - "jszip": "^3.0.0" + "vue-ace": "0.0.1" }, "devDependencies": { "gulp": "^3.9.0", From d010d2175e3fa7f10cbb1c264729120d1e5aa661 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Fri, 27 Jan 2017 15:57:32 +0900 Subject: [PATCH 069/133] Added ansu up NPM libraries, include and call methods for ansiup parse to HTML the ansi code features --- app/assets/javascripts/infrastructures/ec2-tabpane.js | 2 ++ .../javascripts/infrastructures/infra-logs-tabpane.js | 3 +++ app/models/node.rb | 2 -- app/views/vue/_ec2_tabpane.html.erb | 2 +- app/views/vue/_infra_logs_tabpane.html.erb | 2 +- frontend/package.json | 11 ++++++----- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/infrastructures/ec2-tabpane.js b/app/assets/javascripts/infrastructures/ec2-tabpane.js index 550b97492..7ed6888b8 100644 --- a/app/assets/javascripts/infrastructures/ec2-tabpane.js +++ b/app/assets/javascripts/infrastructures/ec2-tabpane.js @@ -3,6 +3,7 @@ var Dish = require('models/dish').default; var EC2Instance = require('models/ec2_instance').default; var Snapshot = require('models/snapshot').default; var queryString = require('query-string').parse(location.search); +var ansi_up = require('ansi_up'); var helpers = require('infrastructures/helper.js'); var toLocaleString = helpers.toLocaleString; @@ -270,6 +271,7 @@ module.exports = Vue.extend({ is_first: function (idx) { return (idx === 0); }, runlist_type: function (run) { return run.replace(/\[.+\]$/, ""); }, runlist_name: function (run) { return run.replace(/^.+\[(.+)\]$/, "$1"); }, + ansi_up: function(log) { return ansi_up.ansi_to_html(log); }, _loading: function () { this.$parent.loading = true; }, diff --git a/app/assets/javascripts/infrastructures/infra-logs-tabpane.js b/app/assets/javascripts/infrastructures/infra-logs-tabpane.js index dce6e496e..c6da25158 100644 --- a/app/assets/javascripts/infrastructures/infra-logs-tabpane.js +++ b/app/assets/javascripts/infrastructures/infra-logs-tabpane.js @@ -3,6 +3,8 @@ var Infrastructure = require('models/infrastructure').default; var helpers = require('infrastructures/helper.js'); var toLocaleString = helpers.toLocaleString; var alert_and_show_infra = helpers.alert_and_show_infra; +var ansi_up = require('ansi_up'); + module.exports = Vue.extend({ template: '#infra-logs-tabpane-template', @@ -27,6 +29,7 @@ module.exports = Vue.extend({ status_class: function (status) { return status ? 'label-success' : 'label-danger'; }, status_text: function (status) { return status ? 'SUCCESS' : 'FAILED'; }, toLocaleString: toLocaleString, + ansi_up: function(log) { return ansi_up.ansi_to_html(log); } }, created: function () { diff --git a/app/models/node.rb b/app/models/node.rb index f4064ab79..3bfd229c1 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -312,7 +312,6 @@ def exec_knife_ssh(command, infra) Open3.popen3(cmd) do |_stdin, stdout, stderr, w| while line = stdout.gets - line.gsub!(/\x1b[^m]*m/, '') # remove ANSI escape line.chomp! yield line @@ -337,7 +336,6 @@ def exec_knife_winrm(command, infra) Open3.popen3(cmd) do |_stdin, stdout, stderr, w| while line = stdout.gets - line.gsub!(/\x1b[^m]*m/, '') # remove ANSI escape line.chomp! yield line diff --git a/app/views/vue/_ec2_tabpane.html.erb b/app/views/vue/_ec2_tabpane.html.erb index cfaa77846..fc1da3ad2 100644 --- a/app/views/vue/_ec2_tabpane.html.erb +++ b/app/views/vue/_ec2_tabpane.html.erb @@ -359,7 +359,7 @@
    <%# わざと一行で書いてます %> <%# TODO: id をつけていないとスクロール出来ない。Vueでうまくやりたい %> -
    +
    diff --git a/app/views/vue/_infra_logs_tabpane.html.erb b/app/views/vue/_infra_logs_tabpane.html.erb index 92e44eba7..43093fe37 100644 --- a/app/views/vue/_infra_logs_tabpane.html.erb +++ b/app/views/vue/_infra_logs_tabpane.html.erb @@ -17,7 +17,7 @@
    - <%= copy_to_clipboard_button('log.details', 'pull-right') %>
    
    +          <%= copy_to_clipboard_button('log.details', 'pull-right') %>
    
             
    diff --git a/frontend/package.json b/frontend/package.json index e083fe990..06e243b00 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,22 +11,23 @@ "test": "karma start --single-run" }, "dependencies": { + "aliasify": "^1.9.0", + "ansi_up": "^1.3.0", "bootstrap": "^3.3.6", "bower": "^1.5.3", "brace": "0.7.0", "browserify": "^ 13.0.0", "browserify-incremental": "^3.0.1", + "clipboard": "^1.5.8", "jquery-textcomplete": "^0.8.1", + "jszip": "^3.0.0", "lodash": "^3.10.1", "md5": "^2.0.0", + "pdfmake-browserified": "^0.1.4", "query-string": "^2.4.1", "serverspec-generator": "^1.0.0", "vue": "^1.0.24", - "vue-ace": "0.0.1", - "pdfmake-browserified": "^0.1.4", - "aliasify": "^1.9.0", - "clipboard": "^1.5.8", - "jszip": "^3.0.0" + "vue-ace": "0.0.1" }, "devDependencies": { "gulp": "^3.9.0", From 956c06e019606896dde583ebd50a24f86e16a066 Mon Sep 17 00:00:00 2001 From: Joeper214 Date: Wed, 1 Feb 2017 10:55:33 +0900 Subject: [PATCH 070/133] Add log notification after yum update execution is success.. --- .../infrastructures/ec2-tabpane.js | 23 +++++++++++++++---- app/views/vue/_infra_logs_tabpane.html.erb | 2 +- config/locales/en.yml | 3 +++ config/locales/ja.yml | 3 +++ 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/infrastructures/ec2-tabpane.js b/app/assets/javascripts/infrastructures/ec2-tabpane.js index 550b97492..5e707d3df 100644 --- a/app/assets/javascripts/infrastructures/ec2-tabpane.js +++ b/app/assets/javascripts/infrastructures/ec2-tabpane.js @@ -63,6 +63,7 @@ module.exports = Vue.extend({ change_status: t('ec2_instances.change_status'), attach_vol: t('ec2_instances.attach'), changing_status: t('ec2_instances.changing_status'), + is_yum_update: false, };}, methods: { @@ -185,7 +186,11 @@ module.exports = Vue.extend({ // cook end self.chef_console_text = ''; self.inprogress = false; - self._show_ec2(); + if (self.is_yum_update) { + self._prompt_yum_log(); + }else { + self._show_ec2(); + } }).progress(function (state, msg) { if (state !== 'update') {return;} @@ -205,6 +210,7 @@ module.exports = Vue.extend({ yum_update: function (security, exec) { var self = this; + self.is_yum_update = true; var infra = new Infrastructure(this.infra_id); var ec2 = new EC2Instance(infra, self.physical_id); @@ -218,17 +224,26 @@ module.exports = Vue.extend({ ).progress(function (state, msg) { // cook start success if(state !== 'start'){return;} - - alert_success(function () { self.inprogress = true; Vue.nextTick(function () { self.watch_cook(dfd); }); - })(msg); }); }); }, + _prompt_yum_log: function() { + var self = this; + self.is_yum_update = false; + + modal.ConfirmHTML(t('infrastructures.infrastructure'), t('nodes.msg.yum_update_success', {physical_id: self.physical_id}), 'success').done(function () { + self.$parent.tabpaneID = 'infra_logs'; + self._loading(); + }).fail(function () { + self._show_ec2(); + }); + }, + edit_runlist: function () { this.$parent.tabpaneID = 'edit_runlist'; this._loading(); diff --git a/app/views/vue/_infra_logs_tabpane.html.erb b/app/views/vue/_infra_logs_tabpane.html.erb index 92e44eba7..f56a81996 100644 --- a/app/views/vue/_infra_logs_tabpane.html.erb +++ b/app/views/vue/_infra_logs_tabpane.html.erb @@ -11,7 +11,7 @@ admin {{log.email}} - {{log.title}}...see all + {{log.title}}...see all diff --git a/config/locales/en.yml b/config/locales/en.yml index 669bef0e7..057da5a58 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -308,6 +308,9 @@ en: runlist_empty: 'Runlist is empty' dish_applied: 'Dish was applied.' stopped: 'Instance has stopped. Please start instance to enable bootstrap.' + yum_update_success: | + Yum update for %{physical_id} has been successful.
    + Do you want to see the logs for this operation? dishes: dishes: 'Dishes' diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 9d7144eb4..ac457c63b 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -305,6 +305,9 @@ ja: runlist_empty: 'Runlist は空です' dish_applied: 'Dish が適用されました' stopped: 'インスタンスが停止しています。ブートストラップを可能にするには、インスタンスを起動してください。' + yum_update_success: | + %{physical_id}のYumアップデートが成功しました。
    + この操作のログを表示しますか? dishes: From 33be5c957822ee0ac12d61042922b10af43d2431 Mon Sep 17 00:00:00 2001 From: candy Date: Fri, 3 Feb 2017 15:59:03 +0900 Subject: [PATCH 071/133] Add warning text in change-scale-modal --- app/views/vue/_ec2_tabpane.html.erb | 11 +++++++++-- app/views/vue/_rds_tabpane.html.erb | 9 ++++++++- config/locales/en.yml | 1 + config/locales/ja.yml | 1 + 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/views/vue/_ec2_tabpane.html.erb b/app/views/vue/_ec2_tabpane.html.erb index cfaa77846..815bdee3a 100644 --- a/app/views/vue/_ec2_tabpane.html.erb +++ b/app/views/vue/_ec2_tabpane.html.erb @@ -369,14 +369,21 @@