webroar 0.6.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -0
- data/README +1 -1
- data/doc/user-guide.html +125 -85
- data/doc/user-guide.txt +2 -2
- data/lib/constant.rb +23 -16
- data/lib/db_connect.rb +2 -3
- data/lib/installer.rb +17 -10
- data/lib/user_interaction.rb +21 -10
- data/lib/webroar_command.rb +21 -23
- data/src/admin_panel/Gemfile +8 -0
- data/src/admin_panel/Rakefile +2 -5
- data/src/admin_panel/app/controllers/application_controller.rb +1 -1
- data/src/admin_panel/app/controllers/exceptions_controller.rb +25 -26
- data/src/admin_panel/app/controllers/graph_controller.rb +2 -1
- data/src/admin_panel/app/helpers/admin_helper.rb +1 -1
- data/src/admin_panel/app/{models → mailers}/mailer.rb +5 -8
- data/src/admin_panel/app/models/app.rb +1 -1
- data/src/admin_panel/app/models/app_exception.rb +15 -11
- data/src/admin_panel/app/models/app_time_sample.rb +40 -10
- data/src/admin_panel/app/models/application_specification.rb +71 -41
- data/src/admin_panel/app/models/resource_usage.rb +76 -55
- data/src/admin_panel/app/models/url_breakup_time_sample.rb +6 -11
- data/src/admin_panel/app/models/url_time_sample.rb +57 -13
- data/src/admin_panel/app/views/admin/_application_table.html.erb +5 -5
- data/src/admin_panel/app/views/admin/_feedback_partial.html.erb +4 -4
- data/src/admin_panel/app/views/admin/_report_bug_partial.html.erb +5 -5
- data/src/admin_panel/app/views/admin/change_password_form.html.erb +3 -3
- data/src/admin_panel/app/views/admin/configuration.html.erb +6 -6
- data/src/admin_panel/app/views/admin/home.html.erb +4 -4
- data/src/admin_panel/app/views/admin/index.html.erb +5 -5
- data/src/admin_panel/app/views/application_specification/_application_specification_form.html.erb +15 -6
- data/src/admin_panel/app/views/exceptions/_add_and_list_exception_classes.html.erb +7 -6
- data/src/admin_panel/app/views/exceptions/_exception_backtrace_partial.html.erb +1 -1
- data/src/admin_panel/app/views/exceptions/_exception_environment_partial.html.erb +30 -30
- data/src/admin_panel/app/views/exceptions/_exception_list_partial.html.erb +11 -11
- data/src/admin_panel/app/views/exceptions/_show.html.erb +8 -8
- data/src/admin_panel/app/views/exceptions/index.html.erb +0 -1
- data/src/admin_panel/app/views/graph/_get_database_data.html.erb +1 -1
- data/src/admin_panel/app/views/graph/_get_resource_usage_data_app.html.erb +2 -2
- data/src/admin_panel/app/views/graph/_get_resource_usage_data_server.html.erb +2 -2
- data/src/admin_panel/app/views/graph/_get_throughput_data.html.erb +2 -2
- data/src/admin_panel/app/views/graph/_get_url_data.html.erb +4 -4
- data/src/admin_panel/app/views/graph/_pie.html.erb +2 -2
- data/src/admin_panel/app/views/graph/_query_date.html.erb +1 -1
- data/src/admin_panel/app/views/graph/_query_period.html.erb +1 -1
- data/src/admin_panel/app/views/graph/_slider_partial.html.erb +5 -4
- data/src/admin_panel/app/views/graph/index.html.erb +0 -1
- data/src/admin_panel/app/views/headers/_add_expires_text_box.html.erb +5 -5
- data/src/admin_panel/app/views/headers/_expires_by_type_form.html.erb +1 -1
- data/src/admin_panel/app/views/headers/_headers_table.html.erb +12 -12
- data/src/admin_panel/app/views/layouts/application.html.erb +71 -51
- data/src/admin_panel/app/views/mail_specification/_current_spec.html.erb +4 -4
- data/src/admin_panel/app/views/mail_specification/_sendmail_form.html.erb +3 -3
- data/src/admin_panel/app/views/mail_specification/_smtp_form.html.erb +3 -3
- data/src/admin_panel/app/views/server_specification/_add_div.html.erb +4 -4
- data/src/admin_panel/app/views/server_specification/_ssl_support_form.html.erb +3 -2
- data/src/admin_panel/config.ru +4 -0
- data/src/admin_panel/config/application.rb +46 -0
- data/src/admin_panel/config/boot.rb +4 -112
- data/src/admin_panel/config/environment.rb +4 -85
- data/src/admin_panel/config/environments/development.rb +20 -13
- data/src/admin_panel/config/environments/production.rb +44 -17
- data/src/admin_panel/config/environments/test.rb +31 -18
- data/src/admin_panel/config/initializers/application_constants.rb +13 -11
- data/src/admin_panel/config/initializers/secret_token.rb +7 -0
- data/src/admin_panel/config/initializers/session_store.rb +8 -0
- data/src/admin_panel/config/initializers/ssl.rb +6 -2
- data/src/admin_panel/config/routes.rb +15 -57
- data/src/admin_panel/doc/README_FOR_APP +1 -1
- data/src/admin_panel/doc/app/ActionView.html +229 -0
- data/src/admin_panel/doc/app/ActionView/Helpers.html +229 -0
- data/src/admin_panel/doc/app/ActionView/Helpers/AssetTagHelper.html +277 -0
- data/src/admin_panel/doc/app/AdminController.html +814 -0
- data/src/admin_panel/doc/app/AdminHelper.html +495 -0
- data/src/admin_panel/doc/app/Analytics.html +272 -0
- data/src/admin_panel/doc/app/Analytics/Database.html +401 -0
- data/src/admin_panel/doc/app/Analytics/ResourceUsage.html +683 -0
- data/src/admin_panel/doc/app/Analytics/Throughput.html +488 -0
- data/src/admin_panel/doc/app/Analytics/Url.html +484 -0
- data/src/admin_panel/doc/app/Analytics/UrlBreakup.html +537 -0
- data/src/admin_panel/doc/app/App.html +489 -0
- data/src/admin_panel/doc/app/AppException.html +710 -0
- data/src/admin_panel/doc/app/AppTimeSample.html +620 -0
- data/src/admin_panel/doc/app/ApplicationController.html +239 -0
- data/src/admin_panel/doc/app/ApplicationHelper.html +296 -0
- data/src/admin_panel/doc/app/ApplicationSpecification.html +876 -0
- data/src/admin_panel/doc/app/ApplicationSpecificationController.html +552 -0
- data/src/admin_panel/doc/app/ApplicationSpecificationHelper.html +219 -0
- data/src/admin_panel/doc/app/Control.html +431 -0
- data/src/admin_panel/doc/app/ExceptionDetail.html +227 -0
- data/src/admin_panel/doc/app/ExceptionsController.html +754 -0
- data/src/admin_panel/doc/app/ExceptionsHelper.html +219 -0
- data/src/admin_panel/doc/app/GraphController.html +1101 -0
- data/src/admin_panel/doc/app/GraphHelper.html +285 -0
- data/src/admin_panel/doc/app/Headers.html +549 -0
- data/src/admin_panel/doc/app/HeadersController.html +507 -0
- data/src/admin_panel/doc/app/HeadersHelper.html +219 -0
- data/src/admin_panel/doc/app/MailSpecification.html +685 -0
- data/src/admin_panel/doc/app/MailSpecificationController.html +541 -0
- data/src/admin_panel/doc/app/MailSpecificationHelper.html +219 -0
- data/src/admin_panel/doc/app/Mailer.html +589 -0
- data/src/admin_panel/doc/app/Object.html +240 -0
- data/src/admin_panel/doc/app/PseudoModel.html +354 -0
- data/src/admin_panel/doc/app/ResourceUsage.html +656 -0
- data/src/admin_panel/doc/app/SCGI.html +674 -0
- data/src/admin_panel/doc/app/ServerSpecification.html +479 -0
- data/src/admin_panel/doc/app/ServerSpecificationController.html +500 -0
- data/src/admin_panel/doc/app/ServerSpecificationHelper.html +219 -0
- data/src/admin_panel/doc/app/SignalHelper.html +287 -0
- data/src/admin_panel/doc/app/UrlBreakupTimeSample.html +287 -0
- data/src/admin_panel/doc/app/UrlTimeSample.html +986 -0
- data/src/admin_panel/doc/app/User.html +290 -0
- data/src/admin_panel/doc/app/YAMLConfig.html +247 -0
- data/src/admin_panel/doc/app/YAMLWriter.html +284 -0
- data/src/admin_panel/doc/app/app/controllers/admin_controller_rb.html +52 -0
- data/src/admin_panel/doc/app/app/controllers/application_controller_rb.html +54 -0
- data/src/admin_panel/doc/app/app/controllers/application_specification_controller_rb.html +52 -0
- data/src/admin_panel/doc/app/app/controllers/exceptions_controller_rb.html +52 -0
- data/src/admin_panel/doc/app/app/controllers/graph_controller_rb.html +52 -0
- data/src/admin_panel/doc/app/app/controllers/headers_controller_rb.html +52 -0
- data/src/admin_panel/doc/app/app/controllers/mail_specification_controller_rb.html +52 -0
- data/src/admin_panel/doc/app/app/controllers/server_specification_controller_rb.html +52 -0
- data/src/admin_panel/doc/app/app/helpers/admin_helper_rb.html +52 -0
- data/src/admin_panel/doc/app/app/helpers/application_helper_rb.html +52 -0
- data/src/admin_panel/doc/app/app/helpers/application_specification_helper_rb.html +52 -0
- data/src/admin_panel/doc/app/app/helpers/exceptions_helper_rb.html +52 -0
- data/src/admin_panel/doc/app/app/helpers/graph_helper_rb.html +52 -0
- data/src/admin_panel/doc/app/app/helpers/headers_helper_rb.html +52 -0
- data/src/admin_panel/doc/app/app/helpers/mail_specification_helper_rb.html +52 -0
- data/src/admin_panel/doc/app/app/helpers/server_specification_helper_rb.html +52 -0
- data/src/admin_panel/doc/app/app/mailers/mailer_rb.html +56 -0
- data/src/admin_panel/doc/app/app/models/app_exception_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/app_rb.html +54 -0
- data/src/admin_panel/doc/app/app/models/app_time_sample_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/application_specification_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/exception_detail_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/headers_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/mail_specification_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/pseudo_model_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/resource_usage_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/server_specification_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/url_breakup_time_sample_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/url_time_sample_rb.html +52 -0
- data/src/admin_panel/doc/app/app/models/user_rb.html +52 -0
- data/src/admin_panel/doc/app/created.rid +42 -1
- data/src/admin_panel/doc/app/doc/README_FOR_APP.html +172 -0
- data/src/admin_panel/doc/app/images/brick.png +0 -0
- data/src/admin_panel/doc/app/images/brick_link.png +0 -0
- data/src/admin_panel/doc/app/images/bug.png +0 -0
- data/src/admin_panel/doc/app/images/bullet_black.png +0 -0
- data/src/admin_panel/doc/app/images/bullet_toggle_minus.png +0 -0
- data/src/admin_panel/doc/app/images/bullet_toggle_plus.png +0 -0
- data/src/admin_panel/doc/app/images/date.png +0 -0
- data/src/admin_panel/doc/app/images/find.png +0 -0
- data/src/admin_panel/doc/app/images/loadingAnimation.gif +0 -0
- data/src/admin_panel/doc/app/images/macFFBgHack.png +0 -0
- data/src/admin_panel/doc/app/images/package.png +0 -0
- data/src/admin_panel/doc/app/images/page_green.png +0 -0
- data/src/admin_panel/doc/app/images/page_white_text.png +0 -0
- data/src/admin_panel/doc/app/images/page_white_width.png +0 -0
- data/src/admin_panel/doc/app/images/plugin.png +0 -0
- data/src/admin_panel/doc/app/images/ruby.png +0 -0
- data/src/admin_panel/doc/app/images/tag_green.png +0 -0
- data/src/admin_panel/doc/app/images/wrench.png +0 -0
- data/src/admin_panel/doc/app/images/wrench_orange.png +0 -0
- data/src/admin_panel/doc/app/images/zoom.png +0 -0
- data/src/admin_panel/doc/app/index.html +564 -20
- data/src/admin_panel/doc/app/js/darkfish.js +116 -0
- data/src/admin_panel/doc/app/js/jquery.js +32 -0
- data/src/admin_panel/doc/app/js/quicksearch.js +114 -0
- data/src/admin_panel/doc/app/js/thickbox-compressed.js +10 -0
- data/src/admin_panel/doc/app/lib/asset_tag_helper_ext_rb.html +52 -0
- data/src/admin_panel/doc/app/lib/control_rb.html +58 -0
- data/src/admin_panel/doc/app/lib/graph_controller_extensions/database_analytics_rb.html +52 -0
- data/src/admin_panel/doc/app/lib/graph_controller_extensions/resource_usage_analytics_rb.html +52 -0
- data/src/admin_panel/doc/app/lib/graph_controller_extensions/throughput_analytics_rb.html +52 -0
- data/src/admin_panel/doc/app/lib/graph_controller_extensions/url_analytics_rb.html +52 -0
- data/src/admin_panel/doc/app/lib/graph_controller_extensions/url_breakup_analytics_rb.html +52 -0
- data/src/admin_panel/doc/app/lib/helper_rb.html +52 -0
- data/src/admin_panel/doc/app/lib/scgi_rb.html +54 -0
- data/src/admin_panel/doc/app/lib/yaml_writer_rb.html +52 -0
- data/src/admin_panel/doc/app/rdoc.css +763 -0
- data/src/admin_panel/lib/helper.rb +6 -2
- data/src/admin_panel/public/stylesheets/other/login.css +8 -4
- data/src/admin_panel/public/stylesheets/other/style.css +21 -17
- data/src/admin_panel/script/rails +6 -0
- data/src/admin_panel/test/test_helper.rb +2 -2
- data/src/admin_panel/vendor/plugins/calendar_date_select/History.txt +281 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/MIT-LICENSE +20 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/Manifest.txt +42 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/README.txt +17 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/Rakefile +37 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/VERSION +1 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/calendar_date_select.gemspec +95 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/init.rb +1 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/functional/cds_test.html +376 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/functional/format_iso_date_test.html +52 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/prototype.js +4184 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/test.css +40 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/unit/cds_helper_methods.html +46 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/unittest.js +564 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select.rb +33 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/calendar_date_select.rb +122 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/form_helpers.rb +237 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/includes_helper.rb +29 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/blank_iframe.html +2 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/images/calendar_date_select/calendar.gif +0 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/calendar_date_select.js +459 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_american.js +35 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_danish.js +31 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_db.js +27 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr_ymd.js +7 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_finnish.js +32 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_hyphen_ampm.js +37 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_iso_date.js +29 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_italian.js +24 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ar.js +10 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/cs.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/da.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/de.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/es.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fi.js +10 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fr.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/hu.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/it.js +9 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ja.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/nl.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/pl.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/pt.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ru.js +10 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/sl.js +11 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/sv.js +9 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/blue.css +130 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/default.css +135 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/green.css +142 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/plain.css +128 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/red.css +135 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/silver.css +133 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/calendar_date_select_spec.rb +14 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/form_helpers_spec.rb +189 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/includes_helper_spec.rb +46 -0
- data/src/admin_panel/vendor/plugins/calendar_date_select/spec/spec_helper.rb +26 -0
- data/src/admin_panel/vendor/plugins/open_flash_chart_2_plugin/install.rb +2 -2
- data/src/admin_panel/vendor/plugins/open_flash_chart_2_plugin/uninstall.rb +2 -2
- data/src/admin_panel/vendor/plugins/prototype_legacy_helper/README.markdown +13 -0
- data/src/admin_panel/vendor/plugins/prototype_legacy_helper/init.rb +1 -0
- data/src/admin_panel/vendor/plugins/prototype_legacy_helper/lib/prototype_legacy_helper.rb +432 -0
- data/src/admin_panel/vendor/plugins/prototype_legacy_helper/test/test_prototype_helper.rb +297 -0
- data/src/helper/wr_config.c +1 -1
- data/src/ruby_lib/analyzer/message_analyzer.rb +1 -0
- data/src/ruby_lib/analyzer/webroar_analyzer.rb +2 -2
- data/src/ruby_lib/profiler/message_dispatcher.rb +1 -1
- data/src/ruby_lib/ruby_interface/version.rb +2 -2
- data/src/ruby_lib/webroar_app_loader.rb +1 -1
- data/tasks/gem.rake +5 -7
- data/tasks/test.rake +1 -0
- data/test/spec/analytics_spec.rb +25 -24
- data/test/spec/test_app/README +142 -129
- data/test/spec/test_app/Rakefile +2 -5
- data/test/spec/test_app/app/controllers/application_controller.rb +3 -8
- data/test/spec/test_app/app/controllers/test_controller.rb +3 -3
- data/test/spec/test_app/app/controllers/users_controller.rb +8 -8
- data/test/spec/test_app/app/helpers/application_helper.rb +2 -1
- data/test/spec/test_app/app/helpers/test_helper.rb +2 -0
- data/test/spec/test_app/app/helpers/users_helper.rb +2 -0
- data/test/spec/test_app/app/models/user.rb +2 -0
- data/test/spec/test_app/app/views/layouts/{users.html.erb → application.html.erb} +6 -9
- data/test/spec/test_app/app/views/test/post_data.html.erb +2 -2
- data/test/spec/test_app/app/views/test/upload_file.html.erb +1 -1
- data/test/spec/test_app/{db/migrate/20090602102438_create_users.rb → app/views/users/_form.html.erb} +22 -11
- data/test/spec/test_app/app/views/users/edit.html.erb +19 -28
- data/test/spec/test_app/app/views/users/index.html.erb +23 -19
- data/test/spec/test_app/app/views/users/new.html.erb +19 -28
- data/test/spec/test_app/app/views/users/show.html.erb +21 -18
- data/test/spec/test_app/config/application.rb +45 -0
- data/test/spec/test_app/config/boot.rb +4 -112
- data/test/spec/test_app/config/database.yml +1 -1
- data/test/spec/test_app/config/environment.rb +4 -41
- data/test/spec/test_app/config/environments/development.rb +22 -13
- data/test/spec/test_app/config/environments/production.rb +41 -20
- data/test/spec/test_app/config/environments/test.rb +35 -28
- data/test/spec/test_app/config/initializers/backtrace_silencers.rb +2 -2
- data/test/spec/test_app/config/initializers/inflections.rb +1 -1
- data/test/spec/test_app/config/initializers/secret_token.rb +7 -0
- data/test/spec/test_app/config/initializers/session_store.rb +3 -10
- data/test/spec/test_app/config/locales/en.yml +5 -0
- data/test/spec/test_app/config/routes.rb +37 -22
- data/test/spec/test_app/db/migrate/20110906113329_create_users.rb +13 -0
- data/test/spec/test_app/db/seeds.rb +7 -0
- data/test/spec/test_app/public/404.html +15 -19
- data/test/spec/test_app/public/422.html +15 -19
- data/test/spec/test_app/public/500.html +14 -18
- data/test/spec/test_app/public/index.html +41 -77
- data/test/spec/test_app/public/javascripts/controls.js +5 -3
- data/test/spec/test_app/public/javascripts/dragdrop.js +7 -6
- data/test/spec/test_app/public/javascripts/effects.js +8 -13
- data/test/spec/test_app/public/javascripts/prototype.js +3381 -1700
- data/test/spec/test_app/public/javascripts/rails.js +191 -0
- data/test/spec/test_app/public/stylesheets/scaffold.css +15 -13
- data/test/spec/test_app/script/rails +6 -0
- metadata +340 -163
- data/src/admin_panel/Gemfile.lock +0 -79
- data/src/admin_panel/doc/app/classes/ActionView.html +0 -111
- data/src/admin_panel/doc/app/classes/ActionView/Helpers.html +0 -111
- data/src/admin_panel/doc/app/classes/ActionView/Helpers/AssetTagHelper.html +0 -149
- data/src/admin_panel/doc/app/classes/AdminController.html +0 -628
- data/src/admin_panel/doc/app/classes/AdminHelper.html +0 -482
- data/src/admin_panel/doc/app/classes/Analytics.html +0 -138
- data/src/admin_panel/doc/app/classes/Analytics/Database.html +0 -245
- data/src/admin_panel/doc/app/classes/Analytics/ResourceUsage.html +0 -478
- data/src/admin_panel/doc/app/classes/Analytics/Throughput.html +0 -316
- data/src/admin_panel/doc/app/classes/Analytics/Url.html +0 -314
- data/src/admin_panel/doc/app/classes/Analytics/UrlBreakup.html +0 -372
- data/src/admin_panel/doc/app/classes/App.html +0 -298
- data/src/admin_panel/doc/app/classes/AppException.html +0 -330
- data/src/admin_panel/doc/app/classes/AppTimeSample.html +0 -427
- data/src/admin_panel/doc/app/classes/ApplicationController.html +0 -118
- data/src/admin_panel/doc/app/classes/ApplicationHelper.html +0 -172
- data/src/admin_panel/doc/app/classes/ApplicationSpecification.html +0 -641
- data/src/admin_panel/doc/app/classes/ApplicationSpecificationController.html +0 -354
- data/src/admin_panel/doc/app/classes/Control.html +0 -273
- data/src/admin_panel/doc/app/classes/ExceptionsController.html +0 -612
- data/src/admin_panel/doc/app/classes/ExceptionsHelper.html +0 -105
- data/src/admin_panel/doc/app/classes/GraphController.html +0 -804
- data/src/admin_panel/doc/app/classes/GraphHelper.html +0 -164
- data/src/admin_panel/doc/app/classes/MailSpecification.html +0 -357
- data/src/admin_panel/doc/app/classes/MailSpecificationController.html +0 -304
- data/src/admin_panel/doc/app/classes/PseudoModel.html +0 -206
- data/src/admin_panel/doc/app/classes/ResourceUsage.html +0 -425
- data/src/admin_panel/doc/app/classes/SCGI.html +0 -406
- data/src/admin_panel/doc/app/classes/ServerSpecification.html +0 -325
- data/src/admin_panel/doc/app/classes/ServerSpecificationController.html +0 -273
- data/src/admin_panel/doc/app/classes/UrlBreakupTimeSample.html +0 -169
- data/src/admin_panel/doc/app/classes/UrlTimeSample.html +0 -708
- data/src/admin_panel/doc/app/classes/User.html +0 -165
- data/src/admin_panel/doc/app/classes/YAMLWriter.html +0 -159
- data/src/admin_panel/doc/app/files/app/controllers/admin_controller_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/controllers/application_controller_rb.html +0 -108
- data/src/admin_panel/doc/app/files/app/controllers/application_specification_controller_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/controllers/exceptions_controller_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/controllers/graph_controller_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/controllers/mail_specification_controller_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/controllers/server_specification_controller_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/helpers/admin_helper_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/helpers/application_helper_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/helpers/exceptions_helper_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/helpers/graph_helper_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/app_exception_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/app_rb.html +0 -108
- data/src/admin_panel/doc/app/files/app/models/app_time_sample_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/application_specification_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/mail_specification_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/pseudo_model_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/resource_usage_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/server_specification_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/url_breakup_time_sample_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/url_time_sample_rb.html +0 -101
- data/src/admin_panel/doc/app/files/app/models/user_rb.html +0 -101
- data/src/admin_panel/doc/app/files/doc/README_FOR_APP.html +0 -109
- data/src/admin_panel/doc/app/files/lib/asset_tag_helper_ext_rb.html +0 -101
- data/src/admin_panel/doc/app/files/lib/control_rb.html +0 -110
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/database_analytics_rb.html +0 -101
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/resource_usage_analytics_rb.html +0 -101
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/throughput_analytics_rb.html +0 -101
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_analytics_rb.html +0 -101
- data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_breakup_analytics_rb.html +0 -101
- data/src/admin_panel/doc/app/files/lib/scgi_rb.html +0 -101
- data/src/admin_panel/doc/app/files/lib/yaml_writer_rb.html +0 -101
- data/src/admin_panel/doc/app/fr_class_index.html +0 -60
- data/src/admin_panel/doc/app/fr_file_index.html +0 -58
- data/src/admin_panel/doc/app/fr_method_index.html +0 -206
- data/src/admin_panel/doc/app/rdoc-style.css +0 -208
- data/src/admin_panel/public/dispatch.cgi +0 -10
- data/src/admin_panel/public/dispatch.fcgi +0 -24
- data/src/admin_panel/public/dispatch.rb +0 -10
- data/src/admin_panel/script/about +0 -4
- data/src/admin_panel/script/console +0 -3
- data/src/admin_panel/script/dbconsole +0 -3
- data/src/admin_panel/script/destroy +0 -3
- data/src/admin_panel/script/generate +0 -3
- data/src/admin_panel/script/performance/benchmarker +0 -3
- data/src/admin_panel/script/performance/profiler +0 -3
- data/src/admin_panel/script/performance/request +0 -3
- data/src/admin_panel/script/plugin +0 -3
- data/src/admin_panel/script/process/inspector +0 -3
- data/src/admin_panel/script/process/reaper +0 -3
- data/src/admin_panel/script/process/spawner +0 -3
- data/src/admin_panel/script/runner +0 -3
- data/src/admin_panel/script/server +0 -3
- data/test/spec/test_app/config/initializers/new_rails_defaults.rb +0 -19
- data/test/spec/test_app/script/about +0 -4
- data/test/spec/test_app/script/console +0 -3
- data/test/spec/test_app/script/dbconsole +0 -3
- data/test/spec/test_app/script/destroy +0 -3
- data/test/spec/test_app/script/generate +0 -3
- data/test/spec/test_app/script/performance/benchmarker +0 -3
- data/test/spec/test_app/script/performance/profiler +0 -3
- data/test/spec/test_app/script/plugin +0 -3
- data/test/spec/test_app/script/runner +0 -3
- data/test/spec/test_app/script/server +0 -3
- data/test/spec/test_app/vendor/.placeholder +0 -0
@@ -19,7 +19,7 @@
|
|
19
19
|
#++
|
20
20
|
|
21
21
|
unless defined?ActionMailer
|
22
|
-
gem 'actionmailer', '
|
22
|
+
gem 'actionmailer', '3.0.9'
|
23
23
|
require 'action_mailer'
|
24
24
|
require 'uri'
|
25
25
|
end
|
@@ -68,10 +68,7 @@ class Mailer < ActionMailer::Base
|
|
68
68
|
|
69
69
|
# This method is to deliver the email to recipients
|
70
70
|
def send_email(subject,body,from,recipients)
|
71
|
-
|
72
|
-
@from = from
|
73
|
-
@recipients = recipients
|
74
|
-
@body = body
|
71
|
+
mail(:to => recipients,:from => from,:subject => subject,:body => body)
|
75
72
|
end
|
76
73
|
|
77
74
|
# This method is used to send exception notification to the recipients
|
@@ -89,7 +86,7 @@ class Mailer < ActionMailer::Base
|
|
89
86
|
body << "#{key.to_s.upcase} : #{value}\n"
|
90
87
|
end
|
91
88
|
begin
|
92
|
-
|
89
|
+
send_email(subject,body,from,recipients).deliver
|
93
90
|
rescue Exception => e
|
94
91
|
e
|
95
92
|
end
|
@@ -137,7 +134,7 @@ class Mailer < ActionMailer::Base
|
|
137
134
|
body = "#{report_bug[:description]}\n\n"
|
138
135
|
body << "Name : #{report_bug[:name]}\nEmail Address : #{report_bug[:email]}\n"
|
139
136
|
begin
|
140
|
-
|
137
|
+
send_email(subject,body,from,"support@webroar.in").deliver
|
141
138
|
"<span style='color:green;'>Thank You for reporting the issue, We'll contact you shortly.</span>"
|
142
139
|
rescue Exception => exception
|
143
140
|
return self.parse_exception(exception),''
|
@@ -152,7 +149,7 @@ class Mailer < ActionMailer::Base
|
|
152
149
|
body = "#{feedback[:message]}\n\n"
|
153
150
|
body << "User Name : #{feedback[:name]}\nEmail Address : #{feedback[:email]}\n"
|
154
151
|
begin
|
155
|
-
|
152
|
+
send_email(subject,body,from,"support@webroar.in").deliver
|
156
153
|
"<span style='color:green;'>Thank you for your valuable feedback!</span>"
|
157
154
|
rescue Exception => exception
|
158
155
|
return self.parse_exception(exception),''
|
@@ -32,7 +32,7 @@ class App < ActiveRecord::Base
|
|
32
32
|
#This method is used to get the application data.
|
33
33
|
#It needs name of the application as an input.
|
34
34
|
def get_application_data(name)
|
35
|
-
app =
|
35
|
+
app = where(:name => name).first
|
36
36
|
return app
|
37
37
|
end
|
38
38
|
|
@@ -27,24 +27,25 @@ class AppException < ActiveRecord::Base
|
|
27
27
|
class << self
|
28
28
|
#Gives the array of the five (open|closed|ignored) exceptions starting from the value of varriable 'start' for an application.
|
29
29
|
def get_all(exception_status, app_id, page = 1, per_page = 5)
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
where(:app_id => app_id,
|
31
|
+
:exception_status => exception_status
|
32
|
+
).paginate(:page => page,
|
33
|
+
:per_page => per_page)
|
33
34
|
end
|
34
35
|
|
35
36
|
# Take App.id as argument and returns count of distinct open exceptions for an Application
|
36
37
|
def count_open(app_id)
|
37
|
-
|
38
|
+
where(:app_id => app_id, :exception_status => OPEN_EXCEPTION).count
|
38
39
|
end
|
39
40
|
|
40
41
|
# Take App.id as argument and returns count of distinct closed exceptions for an Application
|
41
42
|
def count_closed(app_id)
|
42
|
-
|
43
|
+
where(:app_id => app_id, :exception_status => CLOSED_EXCEPTION).count
|
43
44
|
end
|
44
45
|
|
45
46
|
# Take App.id as argument and returns count of distinct ignored exceptions for an Application
|
46
47
|
def count_ignored(app_id)
|
47
|
-
|
48
|
+
where(:app_id => app_id, :exception_status => IGNORED_EXCEPTION).count
|
48
49
|
end
|
49
50
|
|
50
51
|
# Update all exceptions status for given exceptions id array
|
@@ -99,7 +100,7 @@ class AppException < ActiveRecord::Base
|
|
99
100
|
|
100
101
|
# TODO Change function to fetch all exception records if we require all exception fields instead of id only
|
101
102
|
def get_exceptions_by_class(app_id,exception_class)
|
102
|
-
|
103
|
+
where(:app_id => app_id, :exception_class => exception_class).select(:id)
|
103
104
|
end
|
104
105
|
|
105
106
|
# This method is used to change status of exceptions by searching the exception with exception_class
|
@@ -112,10 +113,13 @@ class AppException < ActiveRecord::Base
|
|
112
113
|
|
113
114
|
# This function is used to fetch the first exception record for the given exception_message pattern ,
|
114
115
|
# exception_class, exception_details.controller , exception_details.method and app_id
|
115
|
-
def get_exception_for_analyzer(exception_hash,app_id)
|
116
|
-
|
117
|
-
|
118
|
-
|
116
|
+
def get_exception_for_analyzer(exception_hash, app_id)
|
117
|
+
where("exception_message like ? and exception_class = ? and controller = ? and method = ? and app_id = ?",
|
118
|
+
exception_hash[:exception_message].split(EXCEPTION_MESSAGE_SPLITER)[0] + '%',
|
119
|
+
exception_hash[:exception_class],
|
120
|
+
exception_hash[:controller],
|
121
|
+
exception_hash[:method],
|
122
|
+
app_id).first
|
119
123
|
end
|
120
124
|
end
|
121
125
|
end
|
@@ -34,23 +34,43 @@ class AppTimeSample < ActiveRecord::Base
|
|
34
34
|
interval = ((end_time-start_time) / 60).to_i
|
35
35
|
final_data = Array.new(interval)
|
36
36
|
wall_time = Array.new(interval)
|
37
|
-
application_samples =
|
38
|
-
|
39
|
-
|
37
|
+
application_samples = select('wall_time,
|
38
|
+
sum(db_time) as db_time,
|
39
|
+
sum(total_time_in_request) as total_time_in_request,
|
40
|
+
sum(number_of_requests) as number_of_requests ,
|
41
|
+
avg(avg_response_time) as avg_avg_response_time,
|
42
|
+
avg(peak_requests_served) as avg_peak_requests_served'
|
43
|
+
).where('app_id = ? and
|
44
|
+
wall_time >= ? and
|
45
|
+
wall_time < ?',
|
46
|
+
app_id,
|
47
|
+
start_time.strftime('%Y-%m-%d %H:%M:%S'),
|
48
|
+
end_time.strftime('%Y-%m-%d %H:%M:%S')
|
49
|
+
).group(:wall_time)
|
50
|
+
|
51
|
+
application_samples.each do |application_sample|
|
52
|
+
current_time = Time.local(application_sample.wall_time.year,
|
53
|
+
application_sample.wall_time.month,
|
54
|
+
application_sample.wall_time.day,
|
55
|
+
application_sample.wall_time.hour,
|
56
|
+
application_sample.wall_time.min,
|
57
|
+
'0')
|
40
58
|
db_time_data = 0
|
41
59
|
total_time_in_request = 0
|
42
60
|
total_requests = 0
|
43
61
|
total_data = 0
|
44
62
|
index = (current_time-start_time) / 60
|
45
63
|
total_time_in_request = application_sample.total_time_in_request.to_f
|
46
|
-
|
64
|
+
case type
|
65
|
+
when 'db'
|
47
66
|
db_time_data = application_sample.db_time.to_f
|
48
67
|
total_data = (db_time_data.to_f * 100 / total_time_in_request.to_f).to_f
|
49
|
-
|
68
|
+
when 'averageresponsetime'
|
50
69
|
total_data = application_sample.avg_avg_response_time.to_f
|
51
|
-
|
70
|
+
when 'throughput'
|
52
71
|
total_data = application_sample.avg_peak_requests_served.to_f
|
53
72
|
end
|
73
|
+
|
54
74
|
if max < total_data
|
55
75
|
max = total_data.to_i
|
56
76
|
end
|
@@ -97,7 +117,15 @@ class AppTimeSample < ActiveRecord::Base
|
|
97
117
|
end
|
98
118
|
# puts 'creating'
|
99
119
|
with_exception_handling("Application sample creation for application #{app_id}, wall_time #{wall_time}") do
|
100
|
-
create({:app_id => app_id,
|
120
|
+
create({:app_id => app_id,
|
121
|
+
:total_time_in_request => sample[0],
|
122
|
+
:db_time => sample[1],
|
123
|
+
:rendering_time => sample[2],
|
124
|
+
:number_of_requests => sample[3],
|
125
|
+
:wall_time => wall_time,
|
126
|
+
:sampling_rate => sampling_rate,
|
127
|
+
:avg_response_time => art,
|
128
|
+
:peak_requests_served => prs})
|
101
129
|
end
|
102
130
|
end
|
103
131
|
# application_samples contains at the most one sample and that is for current sampling period.
|
@@ -118,18 +146,20 @@ class AppTimeSample < ActiveRecord::Base
|
|
118
146
|
sample[4][wall_time.sec] = (sample[4][wall_time.sec] || 0 ) + 1
|
119
147
|
message_analyzer.application_samples[app_id][1] = sample
|
120
148
|
elsif wall_time < message_analyzer.application_samples[app_id].first
|
121
|
-
db_sample =
|
149
|
+
db_sample = where('app_id = ? and
|
150
|
+
wall_time >= ? and wall_time <= ?',
|
151
|
+
app_id,
|
152
|
+
wall_time, wall_time + message_analyzer.sampling_rate
|
153
|
+
).first
|
122
154
|
if db_sample
|
123
155
|
db_sample.total_time_in_request += total_spent_time
|
124
156
|
db_sample.db_time += db_time
|
125
157
|
db_sample.rendering_time += rendering_time
|
126
158
|
db_sample.number_of_requests += 1
|
127
|
-
#db_sample.avg_response_time += (total_spent_time / resource_analyzer.worker_count(app_id))
|
128
159
|
db_sample.save! rescue nil
|
129
160
|
else
|
130
161
|
wall_time += message_analyzer.sampling_rate
|
131
162
|
create_sample(app_id, [total_spent_time, db_time, rendering_time, 1, [1]], message_analyzer.sampling_rate, wall_time)
|
132
|
-
#create({:app_id => app_id, :total_time_in_request => total_spent_time, :db_time => db_time, :rendering_time => rendering_time, :number_of_requests => 1, :wall_time => wall_time, :sampling_rate => message_analyzer.sampling_rate, :avg_response_time => 1000, :peak_requests_served => 1 })
|
133
163
|
end
|
134
164
|
elsif wall_time > message_analyzer.application_samples[app_id].first + message_analyzer.sampling_rate
|
135
165
|
o_wall_time = message_analyzer.application_samples[app_id].first + message_analyzer.sampling_rate
|
@@ -17,8 +17,7 @@
|
|
17
17
|
# You should have received a copy of the GNU General Public License
|
18
18
|
# along with WebROaR. If not, see <http://www.gnu.org/licenses/>.
|
19
19
|
#++
|
20
|
-
|
21
|
-
require File.join(RAILS_ROOT, "lib", "helper.rb")
|
20
|
+
require File.join(File.expand_path('../../../' ,__FILE__), 'lib', 'helper')
|
22
21
|
|
23
22
|
class ApplicationSpecification < PseudoModel
|
24
23
|
column :app_id, :string
|
@@ -31,17 +30,39 @@ class ApplicationSpecification < PseudoModel
|
|
31
30
|
column :type1, :string
|
32
31
|
column :analytics, :string
|
33
32
|
column :environment, :string
|
34
|
-
column :min_worker,
|
35
|
-
column :max_worker,
|
36
|
-
|
37
|
-
|
38
|
-
|
33
|
+
column :min_worker, :number
|
34
|
+
column :max_worker, :number
|
35
|
+
|
36
|
+
validates :name, :presence => true,
|
37
|
+
:format => { :with => /^[A-Za-z0-9_\-]*$/i, :message => " must consist of A-Z, a-z, 0-9 , _ , - and /."},
|
38
|
+
:length => { :maximum => 30 },
|
39
|
+
:allow_nil => true
|
40
|
+
validates :resolver, :presence => true
|
41
|
+
validates :path, :presence => true
|
42
|
+
validates :run_as_user, :presence => true,
|
43
|
+
:length => { :maximum => 30 },
|
44
|
+
:allow_nil => true
|
45
|
+
validates :type1, :presence => true
|
46
|
+
validates :environment, :presence => true,
|
47
|
+
:length => { :maximum => 30 },
|
48
|
+
:allow_nil => true
|
49
|
+
validates :min_worker, :numericality => true,
|
50
|
+
:inclusion => { :in => 0..ALLOWED_MAX_WORKERS }
|
51
|
+
validates :max_worker, :numericality => true,
|
52
|
+
:inclusion => { :in => 0..ALLOWED_MAX_WORKERS }
|
53
|
+
|
54
|
+
validate :ensure_validations
|
55
|
+
|
56
|
+
#validates_presence_of :name, :resolver, :path, :run_as_user, :type1, :environment
|
57
|
+
#validates_numericality_of :min_worker, :max_worker, :greater_than_or_equal_to => 1, :less_than_or_equal_to => ALLOWED_MAX_WORKERS
|
58
|
+
#validates_format_of :name, :with => /^[A-Za-z0-9_\-]*$/i, :message => " must consist of A-Z, a-z, 0-9 , _ , - and /."
|
39
59
|
# validates_format_of :path, :with => /^\/.*$/i, :message => "entered is not the complete path for your web application root directory."
|
40
|
-
validates_length_of :name, :maximum => 30, :allow_nil => true
|
60
|
+
#validates_length_of :name, :maximum => 30, :allow_nil => true
|
41
61
|
#validates_length_of :path, :maximum => 256
|
42
|
-
validates_length_of :run_as_user, :maximum => 30, :allow_nil => true
|
43
|
-
validates_length_of :environment, :maximum => 30, :allow_nil => true
|
62
|
+
#validates_length_of :run_as_user, :maximum => 30, :allow_nil => true
|
63
|
+
#validates_length_of :environment, :maximum => 30, :allow_nil => true
|
44
64
|
# validates_format_of :baseuri, :with => /^\/[A-Za-z0-9_\-\/]*$/i, :message => "must start with '/' and contains characters A-Z, a-z, 0-9 , _ , - and /."
|
65
|
+
|
45
66
|
def write
|
46
67
|
|
47
68
|
info = YAML::load_file(CONFIG_FILE_PATH) rescue nil
|
@@ -69,7 +90,7 @@ class ApplicationSpecification < PseudoModel
|
|
69
90
|
info.delete('Application Specification') if info['Application Specification'].length == 0
|
70
91
|
end
|
71
92
|
|
72
|
-
app = App.
|
93
|
+
app = App.where(:name => app_name).first
|
73
94
|
app.destroy if app
|
74
95
|
SignalHelper.send
|
75
96
|
|
@@ -82,9 +103,17 @@ class ApplicationSpecification < PseudoModel
|
|
82
103
|
|
83
104
|
#Converting ApplicationSpecification obeject into a Hash.
|
84
105
|
def obj_to_hash
|
85
|
-
app =
|
86
|
-
|
87
|
-
|
106
|
+
app = {}
|
107
|
+
app['name'] = name
|
108
|
+
app['path'] = path
|
109
|
+
app['run_as_user'] = run_as_user.downcase unless run_as_user.nil?
|
110
|
+
app['type'] = type1.downcase unless type1.nil?
|
111
|
+
app['analytics'] = analytics.downcase unless analytics.nil?
|
112
|
+
app['environment'] = environment.downcase unless environment.nil?
|
113
|
+
app['min_worker'] = min_worker.to_i
|
114
|
+
app['max_worker'] = max_worker.to_i
|
115
|
+
app['baseuri'] = baseuri.strip if baseuri
|
116
|
+
app['host_names'] = host_names if host_names
|
88
117
|
return app
|
89
118
|
end
|
90
119
|
|
@@ -99,26 +128,27 @@ class ApplicationSpecification < PseudoModel
|
|
99
128
|
end
|
100
129
|
|
101
130
|
#this method is used to validate the various fields of the apps model.
|
102
|
-
def validate
|
103
|
-
|
131
|
+
#def validate
|
132
|
+
def ensure_validations
|
133
|
+
# errors.add(:base, MIN_WORKERS_VALIDATION) if min_worker.to_i > 20
|
104
134
|
if max_worker.to_i < min_worker.to_i
|
105
|
-
errors.
|
135
|
+
errors.add(:base, MAX_WORKERS_VALIDATION_1)
|
106
136
|
# elsif max_worker.to_i > 20
|
107
137
|
# errors.add_to_base MAX_WORKERS_VALIDATION_2
|
108
138
|
end
|
109
139
|
#errors.add_to_base APPLICATION_PATH_EXISTANCE_VALIDATION if !File.directory?(path)
|
110
|
-
errors.
|
140
|
+
errors.add(:base, ANALYTICS_VALIDATION) if type1 and type1=="Rails" and analytics and !(analytics.downcase == "enabled" or analytics.downcase == "disabled")
|
111
141
|
#errors.add_to_base ENVIRONMENT_VALIDATION if !(environment.downcase == "production" or environment.downcase == "development" or environment.downcase == "test")
|
112
|
-
errors.
|
142
|
+
errors.add(:base, TYPE_VALIDATION) if type1 and !(type1.downcase == RAILS or type1.downcase == RACK)
|
113
143
|
if path and type1
|
114
144
|
if type1.downcase == RAILS
|
115
145
|
unless File.exists?(File.join(path, 'config', 'environment.rb'))
|
116
|
-
errors.
|
146
|
+
errors.add(:base, "The entered application path is not a valid Rails application path.")
|
117
147
|
end
|
118
148
|
end
|
119
149
|
if type1.downcase == RACK
|
120
150
|
unless File.exists?(File.join(path, 'config.ru'))
|
121
|
-
errors.
|
151
|
+
errors.add(:base, "The entered application path is not a valid Rack application path.")
|
122
152
|
end
|
123
153
|
end
|
124
154
|
end
|
@@ -132,7 +162,7 @@ class ApplicationSpecification < PseudoModel
|
|
132
162
|
|
133
163
|
if (tokens.size == 1 and tokens[0].start_with?('/'))
|
134
164
|
write_attribute(:baseuri, resolver)
|
135
|
-
errors.
|
165
|
+
errors.add(:base, "BaseURI must start with '/' and contains characters A-Z, a-z, 0-9 , _ , - and /.") if !(baseuri.strip =~ /^\/[A-Za-z0-9_\-\/]*$/i)
|
136
166
|
else
|
137
167
|
write_attribute(:host_names, resolver)
|
138
168
|
host_name_flag = 1
|
@@ -145,38 +175,38 @@ class ApplicationSpecification < PseudoModel
|
|
145
175
|
len = token.size
|
146
176
|
# Whole name can not exceed total length of 253
|
147
177
|
if len > 253
|
148
|
-
errors.
|
178
|
+
errors.add(:base , HOSTNAME_LENGTH_EXCEEDS)
|
149
179
|
next
|
150
180
|
end
|
151
181
|
# Subdivision can go down to maximum 127 level.
|
152
182
|
labels = token.split(/\./)
|
153
183
|
if labels.size > 127
|
154
|
-
errors.
|
184
|
+
errors.add(:base, SUBDIVISION_EXCEEDS_127)
|
155
185
|
next
|
156
186
|
end
|
157
187
|
# Start with '/' indicates BaseURI
|
158
188
|
if token.start_with?('/')
|
159
|
-
errors.
|
189
|
+
errors.add(:base, BASEURI_AND_HOSTNAMES_EXIST)
|
160
190
|
break
|
161
191
|
end
|
162
192
|
# If wildcard '*' presents, Hostname should prefix with '~'
|
163
193
|
if token.include?("*") and !(token =~ /^~/)
|
164
|
-
errors.
|
194
|
+
errors.add(:base, "#{token} - #{START_WTIH_TILD}")
|
165
195
|
next
|
166
196
|
end
|
167
197
|
# Wildcard '*' can come either at start or at end, not inbetween
|
168
198
|
pos = token.index('*', 1)
|
169
199
|
if pos and pos != 1 and pos != len-1
|
170
|
-
errors.
|
200
|
+
errors.add(:base, "#{token} - #{WILDCARD_AT_START_OR_END}")
|
171
201
|
next
|
172
202
|
end
|
173
203
|
pos = token.index('*', 2)
|
174
204
|
if pos and pos != len - 1
|
175
|
-
errors.
|
205
|
+
errors.add(:base, "#{token} - #{WILDCARD_AT_START_OR_END}")
|
176
206
|
next
|
177
207
|
end
|
178
208
|
if token =~ /[.][.]/
|
179
|
-
errors.
|
209
|
+
errors.add(:base, "#{token} - #{CONSECUTIVE_DOTS}")
|
180
210
|
next
|
181
211
|
end
|
182
212
|
# Check for Letters, Digits and Hyphen
|
@@ -187,14 +217,14 @@ class ApplicationSpecification < PseudoModel
|
|
187
217
|
labels = labels[1..labels.size - 2]
|
188
218
|
labels.each do |label|
|
189
219
|
if label.size > 63
|
190
|
-
errors.
|
220
|
+
errors.add(:base, LABEL_LENGTH_EXCEEDS)
|
191
221
|
next
|
192
222
|
end
|
193
223
|
label.each_char do |c|
|
194
224
|
if (c >= 'a' and c <= 'z') or (c >= 'A' and c <= 'Z') or (c >= '0' and c <= '9') or c == '-'
|
195
225
|
next
|
196
226
|
else
|
197
|
-
errors.
|
227
|
+
errors.add(:base, HOSTNAME_LDH)
|
198
228
|
err_flag = 1
|
199
229
|
break;
|
200
230
|
end
|
@@ -210,7 +240,7 @@ class ApplicationSpecification < PseudoModel
|
|
210
240
|
c = char_array[0]
|
211
241
|
if (c >= 'a' and c <= 'z') or (c >= 'A' and c <= 'Z') or (c >= '0' and c <= '9') or c == '~'
|
212
242
|
else
|
213
|
-
errors.
|
243
|
+
errors.add(:base, HOSTNAME_LDH)
|
214
244
|
err_flag = 1
|
215
245
|
end
|
216
246
|
end
|
@@ -219,7 +249,7 @@ class ApplicationSpecification < PseudoModel
|
|
219
249
|
c = char_array[1]
|
220
250
|
if (c >= 'a' and c <= 'z') or (c >= 'A' and c <= 'Z') or (c >= '0' and c <= '9') or c == '*'
|
221
251
|
else
|
222
|
-
errors.
|
252
|
+
errors.add(:base, HOSTNAME_LDH)
|
223
253
|
err_flag = 1
|
224
254
|
end
|
225
255
|
end
|
@@ -230,7 +260,7 @@ class ApplicationSpecification < PseudoModel
|
|
230
260
|
if (c >= 'a' and c <= 'z') or (c >= 'A' and c <= 'Z') or (c >= '0' and c <= '9') or c == '-'
|
231
261
|
next
|
232
262
|
else
|
233
|
-
errors.
|
263
|
+
errors.add(:base, HOSTNAME_LDH)
|
234
264
|
err_flag = 1
|
235
265
|
break;
|
236
266
|
end
|
@@ -245,7 +275,7 @@ class ApplicationSpecification < PseudoModel
|
|
245
275
|
c = char_array[char_array.size - 1]
|
246
276
|
if (c >= 'a' and c <= 'z') or (c >= 'A' and c <= 'Z') or (c >= '0' and c <= '9') or c == '*'
|
247
277
|
else
|
248
|
-
errors.
|
278
|
+
errors.add(:base, HOSTNAME_LDH)
|
249
279
|
err_flag = 1
|
250
280
|
end
|
251
281
|
end
|
@@ -255,7 +285,7 @@ class ApplicationSpecification < PseudoModel
|
|
255
285
|
char_array.each do |c|
|
256
286
|
if (c >= 'a' and c <= 'z') or (c >= 'A' and c <= 'Z') or (c >= '0' and c <= '9') or c == '*'
|
257
287
|
else
|
258
|
-
errors.
|
288
|
+
errors.add(:base, HOSTNAME_LDH)
|
259
289
|
err_flag = 1
|
260
290
|
end
|
261
291
|
end
|
@@ -267,7 +297,7 @@ class ApplicationSpecification < PseudoModel
|
|
267
297
|
end
|
268
298
|
|
269
299
|
#BaseURI can not be /admin-panel
|
270
|
-
errors.
|
300
|
+
errors.add(:base, BASEURI_AS_ADMIN_PANEL_BASEURI_VALIDATION) if baseuri and baseuri.strip == ADMIN_PANEL_BASE_URI
|
271
301
|
all_host_names = []
|
272
302
|
curr_host_names_size = curr_host_names.size
|
273
303
|
|
@@ -278,8 +308,8 @@ class ApplicationSpecification < PseudoModel
|
|
278
308
|
if info and info['Application Specification']
|
279
309
|
i = 0
|
280
310
|
info['Application Specification'].each do |app_info|
|
281
|
-
errors.
|
282
|
-
errors.
|
311
|
+
errors.add(:base, "#{name} - #{APPLICATION_NAME_REPEATED}") if app_info['name'] == name and tmp_id != i
|
312
|
+
errors.add(:base, BASEURI_EXISTANCE_VALIDATION) if baseuri and baseuri.strip and app_info['baseuri'] == baseuri.strip and tmp_id != i
|
283
313
|
all_host_names << app_info['host_names'].split(/ /) if app_info['host_names'] and curr_host_names_size > 0 and tmp_id != i
|
284
314
|
i += 1
|
285
315
|
end
|
@@ -287,12 +317,12 @@ class ApplicationSpecification < PseudoModel
|
|
287
317
|
all_host_names.flatten!
|
288
318
|
# checking uniqueness of Hostnames
|
289
319
|
if curr_host_names_size > 0
|
290
|
-
errors.
|
320
|
+
errors.add(:base, HOSTNAME_REPEATED) if curr_host_names_size != curr_host_names.uniq.size
|
291
321
|
if all_host_names.size > 0
|
292
322
|
curr_host_names.each do |c_host_name|
|
293
323
|
all_host_names.each do |host_name|
|
294
324
|
if c_host_name.eql?(host_name)
|
295
|
-
errors.
|
325
|
+
errors.add(:base, "#{c_host_name}-#{HOSTNAME_REPEATED }")
|
296
326
|
break
|
297
327
|
end
|
298
328
|
end
|