Showing
58 changed files
with
910 additions
and
0 deletions
.gitignore
0 → 100644
1 | +# See https://help.github.com/articles/ignoring-files for more about ignoring files. | |
2 | +# | |
3 | +# If you find yourself ignoring temporary files generated by your text editor | |
4 | +# or operating system, you probably want to add a global ignore instead: | |
5 | +# git config --global core.excludesfile '~/.gitignore_global' | |
6 | + | |
7 | +# Ignore bundler config. | |
8 | +/.bundle | |
9 | + | |
10 | +# Ignore the default SQLite database. | |
11 | +/db/*.sqlite3 | |
12 | +/db/*.sqlite3-journal | |
13 | + | |
14 | +# Ignore all logfiles and tempfiles. | |
15 | +/log/* | |
16 | +!/log/.keep | |
17 | +/tmp | |
18 | + | |
19 | +# Ignore vim swp files | |
20 | +.*.sw? | |
21 | + | |
22 | +# ignore generated Gemfile.lock | |
23 | +/Gemfile.lock | |
24 | + | |
25 | +# ignore my client key and cert | |
26 | +*.crt | |
27 | +*.key | ... | ... |
Gemfile
0 → 100644
1 | +source 'https://rubygems.org' | |
2 | + | |
3 | + | |
4 | +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' | |
5 | +gem 'rails', '4.2.6' | |
6 | +# Use sqlite3 as the database for Active Record | |
7 | +gem 'sqlite3' | |
8 | +# Use SCSS for stylesheets | |
9 | +gem 'sass-rails', '~> 5.0' | |
10 | +# Use Uglifier as compressor for JavaScript assets | |
11 | +gem 'uglifier', '>= 1.3.0' | |
12 | +# Use CoffeeScript for .coffee assets and views | |
13 | +gem 'coffee-rails', '~> 4.1.0' | |
14 | +# See https://github.com/rails/execjs#readme for more supported runtimes | |
15 | +# gem 'therubyracer', platforms: :ruby | |
16 | + | |
17 | +# Use jquery as the JavaScript library | |
18 | +gem 'jquery-rails' | |
19 | +# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks | |
20 | +gem 'turbolinks' | |
21 | +# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder | |
22 | +gem 'jbuilder', '~> 2.0' | |
23 | +# bundle exec rake doc:rails generates the API under doc/api. | |
24 | +gem 'sdoc', '~> 0.4.0', group: :doc | |
25 | + | |
26 | +# Use ActiveModel has_secure_password | |
27 | +# gem 'bcrypt', '~> 3.1.7' | |
28 | + | |
29 | +# Use Unicorn as the app server | |
30 | +# gem 'unicorn' | |
31 | + | |
32 | +# Use Capistrano for deployment | |
33 | +# gem 'capistrano-rails', group: :development | |
34 | + | |
35 | +group :development, :test do | |
36 | + # Call 'byebug' anywhere in the code to stop execution and get a debugger console | |
37 | + gem 'byebug' | |
38 | +end | |
39 | + | |
40 | +group :development do | |
41 | + # Access an IRB console on exception pages or by using <%= console %> in views | |
42 | + gem 'web-console', '~> 2.0' | |
43 | + | |
44 | + # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring | |
45 | + gem 'spring' | |
46 | +end | |
47 | + | ... | ... |
README.md
0 → 100644
1 | +# lex-deeit | |
2 | + | |
3 | +A rails application acting as client for | |
4 | +[LXD](http://www.ubuntu.com/cloud/lxd). | |
5 | + | |
6 | +## Description | |
7 | + | |
8 | +This will become a rails application as client for | |
9 | +[LXD](http://www.ubuntu.com/cloud/lxd). I looked into OpenStack but it was | |
10 | +much oversized for my purpose. So I decided to come up with a small solution | |
11 | +by myself. In the beginning it will only manage my bare needs which mainly | |
12 | +is the manangement of static IP addresses within a given range. As well as | |
13 | +management of images and containers via the | |
14 | +[LXD API](https://linuxcontainers.org/lxd/rest-api/). | |
15 | + | |
16 | +## Requirements | |
17 | + | |
18 | + * Rails | |
19 | + * Webserver | |
20 | + | |
21 | +## Dependencies | |
22 | + | |
23 | + * At least one LXD installation with https activated. | |
24 | + | |
25 | +## Contributing | |
26 | + | |
27 | +You can either send me patches or drop me an email asking for access to | |
28 | +this gitlab server. | |
29 | + | |
30 | +## License | |
31 | + | |
32 | +> This program is free software: you can redistribute it and/or modify | |
33 | +> it under the terms of the GNU General Public License as published by | |
34 | +> the Free Software Foundation, either version 3 of the License, or | |
35 | +> (at your option) any later version. | |
36 | +> | |
37 | +> This program is distributed in the hope that it will be useful, | |
38 | +> but WITHOUT ANY WARRANTY; without even the implied warranty of | |
39 | +> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
40 | +> GNU General Public License for more details. | |
41 | +> | |
42 | +> You should have received a copy of the GNU General Public License | |
43 | +> along with this program. If not, see <http://www.gnu.org/licenses/>. | |
44 | + | |
45 | +## Author | |
46 | + | |
47 | +Georg Hopp <<georg@steffers.org>> | ... | ... |
README.rdoc
0 → 100644
1 | +== README | |
2 | + | |
3 | +This README would normally document whatever steps are necessary to get the | |
4 | +application up and running. | |
5 | + | |
6 | +Things you may want to cover: | |
7 | + | |
8 | +* Ruby version | |
9 | + | |
10 | +* System dependencies | |
11 | + | |
12 | +* Configuration | |
13 | + | |
14 | +* Database creation | |
15 | + | |
16 | +* Database initialization | |
17 | + | |
18 | +* How to run the test suite | |
19 | + | |
20 | +* Services (job queues, cache servers, search engines, etc.) | |
21 | + | |
22 | +* Deployment instructions | |
23 | + | |
24 | +* ... | |
25 | + | |
26 | + | |
27 | +Please feel free to use a different markup language if you do not plan to run | |
28 | +<tt>rake doc:app</tt>. | ... | ... |
Rakefile
0 → 100644
app/assets/images/.keep
0 → 100644
app/assets/javascripts/application.js
0 → 100644
1 | +// This is a manifest file that'll be compiled into application.js, which will include all the files | |
2 | +// listed below. | |
3 | +// | |
4 | +// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, | |
5 | +// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. | |
6 | +// | |
7 | +// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the | |
8 | +// compiled file. | |
9 | +// | |
10 | +// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details | |
11 | +// about supported directives. | |
12 | +// | |
13 | +//= require jquery | |
14 | +//= require jquery_ujs | |
15 | +//= require turbolinks | |
16 | +//= require_tree . | ... | ... |
app/assets/stylesheets/application.css
0 → 100644
1 | +/* | |
2 | + * This is a manifest file that'll be compiled into application.css, which will include all the files | |
3 | + * listed below. | |
4 | + * | |
5 | + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, | |
6 | + * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. | |
7 | + * | |
8 | + * You're free to add application-wide styles to this file and they'll appear at the bottom of the | |
9 | + * compiled file so the styles you add here take precedence over styles defined in any styles | |
10 | + * defined in the other CSS/SCSS files in this directory. It is generally better to create a new | |
11 | + * file per style scope. | |
12 | + * | |
13 | + *= require_tree . | |
14 | + *= require_self | |
15 | + */ | ... | ... |
app/controllers/application_controller.rb
0 → 100644
app/controllers/concerns/.keep
0 → 100644
app/helpers/application_helper.rb
0 → 100644
app/mailers/.keep
0 → 100644
app/models/.keep
0 → 100644
app/models/concerns/.keep
0 → 100644
app/views/layouts/application.html.erb
0 → 100644
1 | +<!DOCTYPE html> | |
2 | +<html> | |
3 | +<head> | |
4 | + <title>LexDeeit</title> | |
5 | + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> | |
6 | + <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> | |
7 | + <%= csrf_meta_tags %> | |
8 | +</head> | |
9 | +<body> | |
10 | + | |
11 | +<%= yield %> | |
12 | + | |
13 | +</body> | |
14 | +</html> | ... | ... |
bin/bundle
0 → 100755
bin/rails
0 → 100755
1 | +#!/usr/bin/env ruby | |
2 | +begin | |
3 | + load File.expand_path('../spring', __FILE__) | |
4 | +rescue LoadError => e | |
5 | + raise unless e.message.include?('spring') | |
6 | +end | |
7 | +APP_PATH = File.expand_path('../../config/application', __FILE__) | |
8 | +require_relative '../config/boot' | |
9 | +require 'rails/commands' | ... | ... |
bin/rake
0 → 100755
bin/setup
0 → 100755
1 | +#!/usr/bin/env ruby | |
2 | +require 'pathname' | |
3 | + | |
4 | +# path to your application root. | |
5 | +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) | |
6 | + | |
7 | +Dir.chdir APP_ROOT do | |
8 | + # This script is a starting point to setup your application. | |
9 | + # Add necessary setup steps to this file: | |
10 | + | |
11 | + puts "== Installing dependencies ==" | |
12 | + system "gem install bundler --conservative" | |
13 | + system "bundle check || bundle install" | |
14 | + | |
15 | + # puts "\n== Copying sample files ==" | |
16 | + # unless File.exist?("config/database.yml") | |
17 | + # system "cp config/database.yml.sample config/database.yml" | |
18 | + # end | |
19 | + | |
20 | + puts "\n== Preparing database ==" | |
21 | + system "bin/rake db:setup" | |
22 | + | |
23 | + puts "\n== Removing old logs and tempfiles ==" | |
24 | + system "rm -f log/*" | |
25 | + system "rm -rf tmp/cache" | |
26 | + | |
27 | + puts "\n== Restarting application server ==" | |
28 | + system "touch tmp/restart.txt" | |
29 | +end | ... | ... |
bin/spring
0 → 100755
1 | +#!/usr/bin/env ruby | |
2 | + | |
3 | +# This file loads spring without using Bundler, in order to be fast. | |
4 | +# It gets overwritten when you run the `spring binstub` command. | |
5 | + | |
6 | +unless defined?(Spring) | |
7 | + require 'rubygems' | |
8 | + require 'bundler' | |
9 | + | |
10 | + if (match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m)) | |
11 | + Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(Gem.path_separator) } | |
12 | + gem 'spring', match[1] | |
13 | + require 'spring/binstub' | |
14 | + end | |
15 | +end | ... | ... |
config.ru
0 → 100644
config/application.rb
0 → 100644
1 | +require File.expand_path('../boot', __FILE__) | |
2 | + | |
3 | +require 'rails/all' | |
4 | + | |
5 | +# Require the gems listed in Gemfile, including any gems | |
6 | +# you've limited to :test, :development, or :production. | |
7 | +Bundler.require(*Rails.groups) | |
8 | + | |
9 | +module LexDeeit | |
10 | + class Application < Rails::Application | |
11 | + # Settings in config/environments/* take precedence over those specified here. | |
12 | + # Application configuration should go into files in config/initializers | |
13 | + # -- all .rb files in that directory are automatically loaded. | |
14 | + | |
15 | + # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. | |
16 | + # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. | |
17 | + # config.time_zone = 'Central Time (US & Canada)' | |
18 | + | |
19 | + # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. | |
20 | + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] | |
21 | + # config.i18n.default_locale = :de | |
22 | + | |
23 | + # Do not swallow errors in after_commit/after_rollback callbacks. | |
24 | + config.active_record.raise_in_transactional_callbacks = true | |
25 | + end | |
26 | +end | ... | ... |
config/boot.rb
0 → 100644
config/database.yml
0 → 100644
1 | +# SQLite version 3.x | |
2 | +# gem install sqlite3 | |
3 | +# | |
4 | +# Ensure the SQLite 3 gem is defined in your Gemfile | |
5 | +# gem 'sqlite3' | |
6 | +# | |
7 | +default: &default | |
8 | + adapter: sqlite3 | |
9 | + pool: 5 | |
10 | + timeout: 5000 | |
11 | + | |
12 | +development: | |
13 | + <<: *default | |
14 | + database: db/development.sqlite3 | |
15 | + | |
16 | +# Warning: The database defined as "test" will be erased and | |
17 | +# re-generated from your development database when you run "rake". | |
18 | +# Do not set this db to the same as development or production. | |
19 | +test: | |
20 | + <<: *default | |
21 | + database: db/test.sqlite3 | |
22 | + | |
23 | +production: | |
24 | + <<: *default | |
25 | + database: db/production.sqlite3 | ... | ... |
config/environment.rb
0 → 100644
config/environments/development.rb
0 → 100644
1 | +Rails.application.configure do | |
2 | + # Settings specified here will take precedence over those in config/application.rb. | |
3 | + | |
4 | + # In the development environment your application's code is reloaded on | |
5 | + # every request. This slows down response time but is perfect for development | |
6 | + # since you don't have to restart the web server when you make code changes. | |
7 | + config.cache_classes = false | |
8 | + | |
9 | + # Do not eager load code on boot. | |
10 | + config.eager_load = false | |
11 | + | |
12 | + # Show full error reports and disable caching. | |
13 | + config.consider_all_requests_local = true | |
14 | + config.action_controller.perform_caching = false | |
15 | + | |
16 | + # Don't care if the mailer can't send. | |
17 | + config.action_mailer.raise_delivery_errors = false | |
18 | + | |
19 | + # Print deprecation notices to the Rails logger. | |
20 | + config.active_support.deprecation = :log | |
21 | + | |
22 | + # Raise an error on page load if there are pending migrations. | |
23 | + config.active_record.migration_error = :page_load | |
24 | + | |
25 | + # Debug mode disables concatenation and preprocessing of assets. | |
26 | + # This option may cause significant delays in view rendering with a large | |
27 | + # number of complex assets. | |
28 | + config.assets.debug = true | |
29 | + | |
30 | + # Asset digests allow you to set far-future HTTP expiration dates on all assets, | |
31 | + # yet still be able to expire them through the digest params. | |
32 | + config.assets.digest = true | |
33 | + | |
34 | + # Adds additional error checking when serving assets at runtime. | |
35 | + # Checks for improperly declared sprockets dependencies. | |
36 | + # Raises helpful error messages. | |
37 | + config.assets.raise_runtime_errors = true | |
38 | + | |
39 | + # Raises error for missing translations | |
40 | + # config.action_view.raise_on_missing_translations = true | |
41 | +end | ... | ... |
config/environments/production.rb
0 → 100644
1 | +Rails.application.configure do | |
2 | + # Settings specified here will take precedence over those in config/application.rb. | |
3 | + | |
4 | + # Code is not reloaded between requests. | |
5 | + config.cache_classes = true | |
6 | + | |
7 | + # Eager load code on boot. This eager loads most of Rails and | |
8 | + # your application in memory, allowing both threaded web servers | |
9 | + # and those relying on copy on write to perform better. | |
10 | + # Rake tasks automatically ignore this option for performance. | |
11 | + config.eager_load = true | |
12 | + | |
13 | + # Full error reports are disabled and caching is turned on. | |
14 | + config.consider_all_requests_local = false | |
15 | + config.action_controller.perform_caching = true | |
16 | + | |
17 | + # Enable Rack::Cache to put a simple HTTP cache in front of your application | |
18 | + # Add `rack-cache` to your Gemfile before enabling this. | |
19 | + # For large-scale production use, consider using a caching reverse proxy like | |
20 | + # NGINX, varnish or squid. | |
21 | + # config.action_dispatch.rack_cache = true | |
22 | + | |
23 | + # Disable serving static files from the `/public` folder by default since | |
24 | + # Apache or NGINX already handles this. | |
25 | + config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? | |
26 | + | |
27 | + # Compress JavaScripts and CSS. | |
28 | + config.assets.js_compressor = :uglifier | |
29 | + # config.assets.css_compressor = :sass | |
30 | + | |
31 | + # Do not fallback to assets pipeline if a precompiled asset is missed. | |
32 | + config.assets.compile = false | |
33 | + | |
34 | + # Asset digests allow you to set far-future HTTP expiration dates on all assets, | |
35 | + # yet still be able to expire them through the digest params. | |
36 | + config.assets.digest = true | |
37 | + | |
38 | + # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb | |
39 | + | |
40 | + # Specifies the header that your server uses for sending files. | |
41 | + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache | |
42 | + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX | |
43 | + | |
44 | + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. | |
45 | + # config.force_ssl = true | |
46 | + | |
47 | + # Use the lowest log level to ensure availability of diagnostic information | |
48 | + # when problems arise. | |
49 | + config.log_level = :debug | |
50 | + | |
51 | + # Prepend all log lines with the following tags. | |
52 | + # config.log_tags = [ :subdomain, :uuid ] | |
53 | + | |
54 | + # Use a different logger for distributed setups. | |
55 | + # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) | |
56 | + | |
57 | + # Use a different cache store in production. | |
58 | + # config.cache_store = :mem_cache_store | |
59 | + | |
60 | + # Enable serving of images, stylesheets, and JavaScripts from an asset server. | |
61 | + # config.action_controller.asset_host = 'http://assets.example.com' | |
62 | + | |
63 | + # Ignore bad email addresses and do not raise email delivery errors. | |
64 | + # Set this to true and configure the email server for immediate delivery to raise delivery errors. | |
65 | + # config.action_mailer.raise_delivery_errors = false | |
66 | + | |
67 | + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to | |
68 | + # the I18n.default_locale when a translation cannot be found). | |
69 | + config.i18n.fallbacks = true | |
70 | + | |
71 | + # Send deprecation notices to registered listeners. | |
72 | + config.active_support.deprecation = :notify | |
73 | + | |
74 | + # Use default logging formatter so that PID and timestamp are not suppressed. | |
75 | + config.log_formatter = ::Logger::Formatter.new | |
76 | + | |
77 | + # Do not dump schema after migrations. | |
78 | + config.active_record.dump_schema_after_migration = false | |
79 | +end | ... | ... |
config/environments/test.rb
0 → 100644
1 | +Rails.application.configure do | |
2 | + # Settings specified here will take precedence over those in config/application.rb. | |
3 | + | |
4 | + # The test environment is used exclusively to run your application's | |
5 | + # test suite. You never need to work with it otherwise. Remember that | |
6 | + # your test database is "scratch space" for the test suite and is wiped | |
7 | + # and recreated between test runs. Don't rely on the data there! | |
8 | + config.cache_classes = true | |
9 | + | |
10 | + # Do not eager load code on boot. This avoids loading your whole application | |
11 | + # just for the purpose of running a single test. If you are using a tool that | |
12 | + # preloads Rails for running tests, you may have to set it to true. | |
13 | + config.eager_load = false | |
14 | + | |
15 | + # Configure static file server for tests with Cache-Control for performance. | |
16 | + config.serve_static_files = true | |
17 | + config.static_cache_control = 'public, max-age=3600' | |
18 | + | |
19 | + # Show full error reports and disable caching. | |
20 | + config.consider_all_requests_local = true | |
21 | + config.action_controller.perform_caching = false | |
22 | + | |
23 | + # Raise exceptions instead of rendering exception templates. | |
24 | + config.action_dispatch.show_exceptions = false | |
25 | + | |
26 | + # Disable request forgery protection in test environment. | |
27 | + config.action_controller.allow_forgery_protection = false | |
28 | + | |
29 | + # Tell Action Mailer not to deliver emails to the real world. | |
30 | + # The :test delivery method accumulates sent emails in the | |
31 | + # ActionMailer::Base.deliveries array. | |
32 | + config.action_mailer.delivery_method = :test | |
33 | + | |
34 | + # Randomize the order test cases are executed. | |
35 | + config.active_support.test_order = :random | |
36 | + | |
37 | + # Print deprecation notices to the stderr. | |
38 | + config.active_support.deprecation = :stderr | |
39 | + | |
40 | + # Raises error for missing translations | |
41 | + # config.action_view.raise_on_missing_translations = true | |
42 | +end | ... | ... |
config/initializers/assets.rb
0 → 100644
1 | +# Be sure to restart your server when you modify this file. | |
2 | + | |
3 | +# Version of your assets, change this if you want to expire all your assets. | |
4 | +Rails.application.config.assets.version = '1.0' | |
5 | + | |
6 | +# Add additional assets to the asset load path | |
7 | +# Rails.application.config.assets.paths << Emoji.images_path | |
8 | + | |
9 | +# Precompile additional assets. | |
10 | +# application.js, application.css, and all non-JS/CSS in app/assets folder are already added. | |
11 | +# Rails.application.config.assets.precompile += %w( search.js ) | ... | ... |
config/initializers/backtrace_silencers.rb
0 → 100644
1 | +# Be sure to restart your server when you modify this file. | |
2 | + | |
3 | +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. | |
4 | +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } | |
5 | + | |
6 | +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. | |
7 | +# Rails.backtrace_cleaner.remove_silencers! | ... | ... |
config/initializers/cookies_serializer.rb
0 → 100644
config/initializers/inflections.rb
0 → 100644
1 | +# Be sure to restart your server when you modify this file. | |
2 | + | |
3 | +# Add new inflection rules using the following format. Inflections | |
4 | +# are locale specific, and you may define rules for as many different | |
5 | +# locales as you wish. All of these examples are active by default: | |
6 | +# ActiveSupport::Inflector.inflections(:en) do |inflect| | |
7 | +# inflect.plural /^(ox)$/i, '\1en' | |
8 | +# inflect.singular /^(ox)en/i, '\1' | |
9 | +# inflect.irregular 'person', 'people' | |
10 | +# inflect.uncountable %w( fish sheep ) | |
11 | +# end | |
12 | + | |
13 | +# These inflection rules are supported but not enabled by default: | |
14 | +# ActiveSupport::Inflector.inflections(:en) do |inflect| | |
15 | +# inflect.acronym 'RESTful' | |
16 | +# end | ... | ... |
config/initializers/mime_types.rb
0 → 100644
config/initializers/session_store.rb
0 → 100644
config/initializers/wrap_parameters.rb
0 → 100644
1 | +# Be sure to restart your server when you modify this file. | |
2 | + | |
3 | +# This file contains settings for ActionController::ParamsWrapper which | |
4 | +# is enabled by default. | |
5 | + | |
6 | +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. | |
7 | +ActiveSupport.on_load(:action_controller) do | |
8 | + wrap_parameters format: [:json] if respond_to?(:wrap_parameters) | |
9 | +end | |
10 | + | |
11 | +# To enable root element in JSON for ActiveRecord objects. | |
12 | +# ActiveSupport.on_load(:active_record) do | |
13 | +# self.include_root_in_json = true | |
14 | +# end | ... | ... |
config/locales/en.yml
0 → 100644
1 | +# Files in the config/locales directory are used for internationalization | |
2 | +# and are automatically loaded by Rails. If you want to use locales other | |
3 | +# than English, add the necessary files in this directory. | |
4 | +# | |
5 | +# To use the locales, use `I18n.t`: | |
6 | +# | |
7 | +# I18n.t 'hello' | |
8 | +# | |
9 | +# In views, this is aliased to just `t`: | |
10 | +# | |
11 | +# <%= t('hello') %> | |
12 | +# | |
13 | +# To use a different locale, set it with `I18n.locale`: | |
14 | +# | |
15 | +# I18n.locale = :es | |
16 | +# | |
17 | +# This would use the information in config/locales/es.yml. | |
18 | +# | |
19 | +# To learn more, please read the Rails Internationalization guide | |
20 | +# available at http://guides.rubyonrails.org/i18n.html. | |
21 | + | |
22 | +en: | |
23 | + hello: "Hello world" | ... | ... |
config/routes.rb
0 → 100644
1 | +Rails.application.routes.draw do | |
2 | + # The priority is based upon order of creation: first created -> highest priority. | |
3 | + # See how all your routes lay out with "rake routes". | |
4 | + | |
5 | + # You can have the root of your site routed with "root" | |
6 | + # root 'welcome#index' | |
7 | + | |
8 | + # Example of regular route: | |
9 | + # get 'products/:id' => 'catalog#view' | |
10 | + | |
11 | + # Example of named route that can be invoked with purchase_url(id: product.id) | |
12 | + # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase | |
13 | + | |
14 | + # Example resource route (maps HTTP verbs to controller actions automatically): | |
15 | + # resources :products | |
16 | + | |
17 | + # Example resource route with options: | |
18 | + # resources :products do | |
19 | + # member do | |
20 | + # get 'short' | |
21 | + # post 'toggle' | |
22 | + # end | |
23 | + # | |
24 | + # collection do | |
25 | + # get 'sold' | |
26 | + # end | |
27 | + # end | |
28 | + | |
29 | + # Example resource route with sub-resources: | |
30 | + # resources :products do | |
31 | + # resources :comments, :sales | |
32 | + # resource :seller | |
33 | + # end | |
34 | + | |
35 | + # Example resource route with more complex sub-resources: | |
36 | + # resources :products do | |
37 | + # resources :comments | |
38 | + # resources :sales do | |
39 | + # get 'recent', on: :collection | |
40 | + # end | |
41 | + # end | |
42 | + | |
43 | + # Example resource route with concerns: | |
44 | + # concern :toggleable do | |
45 | + # post 'toggle' | |
46 | + # end | |
47 | + # resources :posts, concerns: :toggleable | |
48 | + # resources :photos, concerns: :toggleable | |
49 | + | |
50 | + # Example resource route within a namespace: | |
51 | + # namespace :admin do | |
52 | + # # Directs /admin/products/* to Admin::ProductsController | |
53 | + # # (app/controllers/admin/products_controller.rb) | |
54 | + # resources :products | |
55 | + # end | |
56 | +end | ... | ... |
config/secrets.yml
0 → 100644
1 | +# Be sure to restart your server when you modify this file. | |
2 | + | |
3 | +# Your secret key is used for verifying the integrity of signed cookies. | |
4 | +# If you change this key, all old signed cookies will become invalid! | |
5 | + | |
6 | +# Make sure the secret is at least 30 characters and all random, | |
7 | +# no regular words or you'll be exposed to dictionary attacks. | |
8 | +# You can use `rake secret` to generate a secure secret key. | |
9 | + | |
10 | +# Make sure the secrets in this file are kept private | |
11 | +# if you're sharing your code publicly. | |
12 | + | |
13 | +development: | |
14 | + secret_key_base: 35c576c8e74836cd42aeb4b6bb2087c9a309c7b38d4dbd50ead0612f53ae46a193c23efa8f113dd93f78a6b82471b0f36292167757de57eac1ca8a242f35b392 | |
15 | + | |
16 | +test: | |
17 | + secret_key_base: 353e5c7e80f08c8fc3c8c5cc0841f7991ec258b2b6f48c3ae43e628208204f9269f88630c3c2cdf1a4f2d0d6165a93af710538ca56cced12b570614d2b4244e6 | |
18 | + | |
19 | +# Do not keep production secrets in the repository, | |
20 | +# instead read values from the environment. | |
21 | +production: | |
22 | + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> | ... | ... |
db/seeds.rb
0 → 100644
1 | +# This file should contain all the record creation needed to seed the database with its default values. | |
2 | +# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). | |
3 | +# | |
4 | +# Examples: | |
5 | +# | |
6 | +# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }]) | |
7 | +# Mayor.create(name: 'Emanuel', city: cities.first) | ... | ... |
doc/test.rb
0 → 100644
1 | +require "net/http" | |
2 | +require "uri" | |
3 | +require "openssl" | |
4 | +require "json" | |
5 | +require "yaml" | |
6 | + | |
7 | +# curl -k -E lxd-client.crt -X GET https://192.168.30.1:8443/1.0/ | |
8 | +# where lxd-client contains both, cert and key. | |
9 | +# | |
10 | +api_base_uri = 'https://192.168.30.1:8443/' | |
11 | + | |
12 | +cert = File.read(File.dirname(__FILE__) + '/client.crt') | |
13 | +key = File.read(File.dirname(__FILE__) + '/client.key') | |
14 | + | |
15 | +uri = URI.parse(api_base_uri + '1.0') | |
16 | +http = Net::HTTP.new(uri.host, uri.port) | |
17 | +http.use_ssl = true | |
18 | +http.cert = OpenSSL::X509::Certificate.new(cert) | |
19 | +http.key = OpenSSL::PKey::RSA.new(key) | |
20 | +http.verify_mode = OpenSSL::SSL::VERIFY_NONE | |
21 | + | |
22 | +request = Net::HTTP::Get.new(uri.request_uri) | |
23 | + | |
24 | +response = http.request(request) | |
25 | + | |
26 | +puts JSON.parse(response.body).to_yaml | |
27 | + | |
28 | +# vim: set ts=2 sw=2: | ... | ... |
lib/assets/.keep
0 → 100644
lib/tasks/.keep
0 → 100644
log/.keep
0 → 100644
public/404.html
0 → 100644
1 | +<!DOCTYPE html> | |
2 | +<html> | |
3 | +<head> | |
4 | + <title>The page you were looking for doesn't exist (404)</title> | |
5 | + <meta name="viewport" content="width=device-width,initial-scale=1"> | |
6 | + <style> | |
7 | + body { | |
8 | + background-color: #EFEFEF; | |
9 | + color: #2E2F30; | |
10 | + text-align: center; | |
11 | + font-family: arial, sans-serif; | |
12 | + margin: 0; | |
13 | + } | |
14 | + | |
15 | + div.dialog { | |
16 | + width: 95%; | |
17 | + max-width: 33em; | |
18 | + margin: 4em auto 0; | |
19 | + } | |
20 | + | |
21 | + div.dialog > div { | |
22 | + border: 1px solid #CCC; | |
23 | + border-right-color: #999; | |
24 | + border-left-color: #999; | |
25 | + border-bottom-color: #BBB; | |
26 | + border-top: #B00100 solid 4px; | |
27 | + border-top-left-radius: 9px; | |
28 | + border-top-right-radius: 9px; | |
29 | + background-color: white; | |
30 | + padding: 7px 12% 0; | |
31 | + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |
32 | + } | |
33 | + | |
34 | + h1 { | |
35 | + font-size: 100%; | |
36 | + color: #730E15; | |
37 | + line-height: 1.5em; | |
38 | + } | |
39 | + | |
40 | + div.dialog > p { | |
41 | + margin: 0 0 1em; | |
42 | + padding: 1em; | |
43 | + background-color: #F7F7F7; | |
44 | + border: 1px solid #CCC; | |
45 | + border-right-color: #999; | |
46 | + border-left-color: #999; | |
47 | + border-bottom-color: #999; | |
48 | + border-bottom-left-radius: 4px; | |
49 | + border-bottom-right-radius: 4px; | |
50 | + border-top-color: #DADADA; | |
51 | + color: #666; | |
52 | + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |
53 | + } | |
54 | + </style> | |
55 | +</head> | |
56 | + | |
57 | +<body> | |
58 | + <!-- This file lives in public/404.html --> | |
59 | + <div class="dialog"> | |
60 | + <div> | |
61 | + <h1>The page you were looking for doesn't exist.</h1> | |
62 | + <p>You may have mistyped the address or the page may have moved.</p> | |
63 | + </div> | |
64 | + <p>If you are the application owner check the logs for more information.</p> | |
65 | + </div> | |
66 | +</body> | |
67 | +</html> | ... | ... |
public/422.html
0 → 100644
1 | +<!DOCTYPE html> | |
2 | +<html> | |
3 | +<head> | |
4 | + <title>The change you wanted was rejected (422)</title> | |
5 | + <meta name="viewport" content="width=device-width,initial-scale=1"> | |
6 | + <style> | |
7 | + body { | |
8 | + background-color: #EFEFEF; | |
9 | + color: #2E2F30; | |
10 | + text-align: center; | |
11 | + font-family: arial, sans-serif; | |
12 | + margin: 0; | |
13 | + } | |
14 | + | |
15 | + div.dialog { | |
16 | + width: 95%; | |
17 | + max-width: 33em; | |
18 | + margin: 4em auto 0; | |
19 | + } | |
20 | + | |
21 | + div.dialog > div { | |
22 | + border: 1px solid #CCC; | |
23 | + border-right-color: #999; | |
24 | + border-left-color: #999; | |
25 | + border-bottom-color: #BBB; | |
26 | + border-top: #B00100 solid 4px; | |
27 | + border-top-left-radius: 9px; | |
28 | + border-top-right-radius: 9px; | |
29 | + background-color: white; | |
30 | + padding: 7px 12% 0; | |
31 | + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |
32 | + } | |
33 | + | |
34 | + h1 { | |
35 | + font-size: 100%; | |
36 | + color: #730E15; | |
37 | + line-height: 1.5em; | |
38 | + } | |
39 | + | |
40 | + div.dialog > p { | |
41 | + margin: 0 0 1em; | |
42 | + padding: 1em; | |
43 | + background-color: #F7F7F7; | |
44 | + border: 1px solid #CCC; | |
45 | + border-right-color: #999; | |
46 | + border-left-color: #999; | |
47 | + border-bottom-color: #999; | |
48 | + border-bottom-left-radius: 4px; | |
49 | + border-bottom-right-radius: 4px; | |
50 | + border-top-color: #DADADA; | |
51 | + color: #666; | |
52 | + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |
53 | + } | |
54 | + </style> | |
55 | +</head> | |
56 | + | |
57 | +<body> | |
58 | + <!-- This file lives in public/422.html --> | |
59 | + <div class="dialog"> | |
60 | + <div> | |
61 | + <h1>The change you wanted was rejected.</h1> | |
62 | + <p>Maybe you tried to change something you didn't have access to.</p> | |
63 | + </div> | |
64 | + <p>If you are the application owner check the logs for more information.</p> | |
65 | + </div> | |
66 | +</body> | |
67 | +</html> | ... | ... |
public/500.html
0 → 100644
1 | +<!DOCTYPE html> | |
2 | +<html> | |
3 | +<head> | |
4 | + <title>We're sorry, but something went wrong (500)</title> | |
5 | + <meta name="viewport" content="width=device-width,initial-scale=1"> | |
6 | + <style> | |
7 | + body { | |
8 | + background-color: #EFEFEF; | |
9 | + color: #2E2F30; | |
10 | + text-align: center; | |
11 | + font-family: arial, sans-serif; | |
12 | + margin: 0; | |
13 | + } | |
14 | + | |
15 | + div.dialog { | |
16 | + width: 95%; | |
17 | + max-width: 33em; | |
18 | + margin: 4em auto 0; | |
19 | + } | |
20 | + | |
21 | + div.dialog > div { | |
22 | + border: 1px solid #CCC; | |
23 | + border-right-color: #999; | |
24 | + border-left-color: #999; | |
25 | + border-bottom-color: #BBB; | |
26 | + border-top: #B00100 solid 4px; | |
27 | + border-top-left-radius: 9px; | |
28 | + border-top-right-radius: 9px; | |
29 | + background-color: white; | |
30 | + padding: 7px 12% 0; | |
31 | + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |
32 | + } | |
33 | + | |
34 | + h1 { | |
35 | + font-size: 100%; | |
36 | + color: #730E15; | |
37 | + line-height: 1.5em; | |
38 | + } | |
39 | + | |
40 | + div.dialog > p { | |
41 | + margin: 0 0 1em; | |
42 | + padding: 1em; | |
43 | + background-color: #F7F7F7; | |
44 | + border: 1px solid #CCC; | |
45 | + border-right-color: #999; | |
46 | + border-left-color: #999; | |
47 | + border-bottom-color: #999; | |
48 | + border-bottom-left-radius: 4px; | |
49 | + border-bottom-right-radius: 4px; | |
50 | + border-top-color: #DADADA; | |
51 | + color: #666; | |
52 | + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17); | |
53 | + } | |
54 | + </style> | |
55 | +</head> | |
56 | + | |
57 | +<body> | |
58 | + <!-- This file lives in public/500.html --> | |
59 | + <div class="dialog"> | |
60 | + <div> | |
61 | + <h1>We're sorry, but something went wrong.</h1> | |
62 | + </div> | |
63 | + <p>If you are the application owner check the logs for more information.</p> | |
64 | + </div> | |
65 | +</body> | |
66 | +</html> | ... | ... |
public/favicon.ico
0 → 100644
public/robots.txt
0 → 100644
test/controllers/.keep
0 → 100644
test/fixtures/.keep
0 → 100644
test/helpers/.keep
0 → 100644
test/integration/.keep
0 → 100644
test/mailers/.keep
0 → 100644
test/models/.keep
0 → 100644
test/test_helper.rb
0 → 100644
1 | +ENV['RAILS_ENV'] ||= 'test' | |
2 | +require File.expand_path('../../config/environment', __FILE__) | |
3 | +require 'rails/test_help' | |
4 | + | |
5 | +class ActiveSupport::TestCase | |
6 | + # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. | |
7 | + fixtures :all | |
8 | + | |
9 | + # Add more helper methods to be used by all tests here... | |
10 | +end | ... | ... |
vendor/assets/javascripts/.keep
0 → 100644
vendor/assets/stylesheets/.keep
0 → 100644
Please
register
or
login
to post a comment