plesk_kit 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. checksums.yaml +15 -0
  2. data/app/assets/javascripts/plesk_kit/application.js +15 -0
  3. data/app/assets/javascripts/plesk_kit/customer_accounts.js +2 -0
  4. data/app/assets/javascripts/plesk_kit/customers.js +2 -0
  5. data/app/assets/javascripts/plesk_kit/reseller_accounts.js +2 -0
  6. data/app/assets/javascripts/plesk_kit/servers.js +2 -0
  7. data/app/assets/javascripts/plesk_kit/subscriptions.js +2 -0
  8. data/app/assets/stylesheets/plesk_kit/application.css +13 -0
  9. data/app/assets/stylesheets/plesk_kit/customer_accounts.css +4 -0
  10. data/app/assets/stylesheets/plesk_kit/customers.css +4 -0
  11. data/app/assets/stylesheets/plesk_kit/reseller_accounts.css +4 -0
  12. data/app/assets/stylesheets/plesk_kit/servers.css +4 -0
  13. data/app/assets/stylesheets/plesk_kit/subscriptions.css +4 -0
  14. data/app/assets/stylesheets/scaffold.css +56 -0
  15. data/app/controllers/plesk_kit/application_controller.rb +4 -0
  16. data/app/controllers/plesk_kit/customer_accounts_controller.rb +87 -0
  17. data/app/controllers/plesk_kit/reseller_accounts_controller.rb +87 -0
  18. data/app/controllers/plesk_kit/servers_controller.rb +87 -0
  19. data/app/controllers/plesk_kit/subscriptions_controller.rb +87 -0
  20. data/app/helpers/plesk_kit/application_helper.rb +4 -0
  21. data/app/helpers/plesk_kit/customer_accounts_helper.rb +4 -0
  22. data/app/helpers/plesk_kit/reseller_accounts_helper.rb +4 -0
  23. data/app/helpers/plesk_kit/servers_helper.rb +4 -0
  24. data/app/helpers/plesk_kit/subscriptions_helper.rb +4 -0
  25. data/app/models/plesk_kit/client.rb +25 -0
  26. data/app/models/plesk_kit/communicator.rb +55 -0
  27. data/app/models/plesk_kit/customer_account.rb +70 -0
  28. data/app/models/plesk_kit/reseller_account.rb +72 -0
  29. data/app/models/plesk_kit/server.rb +30 -0
  30. data/app/models/plesk_kit/service_plan.rb +359 -0
  31. data/app/models/plesk_kit/subscription.rb +95 -0
  32. data/app/views/layouts/plesk_kit/application.html.erb +14 -0
  33. data/app/views/plesk_kit/customer_accounts/_form.html.erb +33 -0
  34. data/app/views/plesk_kit/customer_accounts/edit.html.erb +6 -0
  35. data/app/views/plesk_kit/customer_accounts/index.html.erb +29 -0
  36. data/app/views/plesk_kit/customer_accounts/new.html.erb +5 -0
  37. data/app/views/plesk_kit/customer_accounts/show.html.erb +25 -0
  38. data/app/views/plesk_kit/reseller_accounts/_form.html.erb +33 -0
  39. data/app/views/plesk_kit/reseller_accounts/edit.html.erb +6 -0
  40. data/app/views/plesk_kit/reseller_accounts/index.html.erb +29 -0
  41. data/app/views/plesk_kit/reseller_accounts/new.html.erb +5 -0
  42. data/app/views/plesk_kit/reseller_accounts/show.html.erb +25 -0
  43. data/app/views/plesk_kit/servers/_form.html.erb +37 -0
  44. data/app/views/plesk_kit/servers/edit.html.erb +6 -0
  45. data/app/views/plesk_kit/servers/index.html.erb +31 -0
  46. data/app/views/plesk_kit/servers/new.html.erb +5 -0
  47. data/app/views/plesk_kit/servers/show.html.erb +30 -0
  48. data/app/views/plesk_kit/subscriptions/_form.html.erb +49 -0
  49. data/app/views/plesk_kit/subscriptions/edit.html.erb +6 -0
  50. data/app/views/plesk_kit/subscriptions/index.html.erb +33 -0
  51. data/app/views/plesk_kit/subscriptions/new.html.erb +5 -0
  52. data/app/views/plesk_kit/subscriptions/show.html.erb +35 -0
  53. data/config/routes.rb +8 -0
  54. data/db/migrate/20130906033658_create_plesk_kit_customer_accounts.rb +14 -0
  55. data/db/migrate/20130906033745_create_plesk_kit_reseller_accounts.rb +15 -0
  56. data/db/migrate/20130906034225_create_plesk_kit_subscriptions.rb +16 -0
  57. data/db/migrate/20130906040817_create_plesk_kit_servers.rb +13 -0
  58. data/db/migrate/20130917012645_create_plesk_kit_service_plans.rb +13 -0
  59. data/db/migrate/20130925025125_add_platform_to_customer_account.rb +5 -0
  60. data/db/migrate/20130925025132_add_platform_to_reseller_account.rb +5 -0
  61. data/lib/plesk_kit/engine.rb +23 -0
  62. data/lib/plesk_kit/version.rb +3 -0
  63. data/lib/plesk_kit.rb +4 -0
  64. data/lib/tasks/plesk_kit_tasks.rake +4 -0
  65. data/test/dummy/README.rdoc +261 -0
  66. data/test/dummy/Rakefile +7 -0
  67. data/test/dummy/app/assets/javascripts/application.js +15 -0
  68. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  69. data/test/dummy/app/controllers/application_controller.rb +3 -0
  70. data/test/dummy/app/helpers/application_helper.rb +2 -0
  71. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  72. data/test/dummy/config/application.rb +59 -0
  73. data/test/dummy/config/boot.rb +10 -0
  74. data/test/dummy/config/database.yml +25 -0
  75. data/test/dummy/config/environment.rb +5 -0
  76. data/test/dummy/config/environments/development.rb +37 -0
  77. data/test/dummy/config/environments/production.rb +67 -0
  78. data/test/dummy/config/environments/test.rb +37 -0
  79. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  80. data/test/dummy/config/initializers/inflections.rb +15 -0
  81. data/test/dummy/config/initializers/mime_types.rb +5 -0
  82. data/test/dummy/config/initializers/secret_token.rb +7 -0
  83. data/test/dummy/config/initializers/session_store.rb +8 -0
  84. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  85. data/test/dummy/config/locales/en.yml +5 -0
  86. data/test/dummy/config/routes.rb +4 -0
  87. data/test/dummy/config.ru +4 -0
  88. data/test/dummy/db/development.sqlite3 +0 -0
  89. data/test/dummy/db/migrate/20130906035255_create_plesk_kit_customer_accounts.plesk_kit.rb +13 -0
  90. data/test/dummy/db/migrate/20130906035256_create_plesk_kit_reseller_accounts.plesk_kit.rb +13 -0
  91. data/test/dummy/db/migrate/20130906035257_create_plesk_kit_subscriptions.plesk_kit.rb +17 -0
  92. data/test/dummy/db/migrate/20130906040830_create_plesk_kit_servers.plesk_kit.rb +14 -0
  93. data/test/dummy/db/migrate/20130917020158_create_plesk_kit_service_plans.plesk_kit.rb +14 -0
  94. data/test/dummy/db/schema.rb +82 -0
  95. data/test/dummy/db/test.sqlite3 +0 -0
  96. data/test/dummy/log/development.log +9422 -0
  97. data/test/dummy/public/404.html +26 -0
  98. data/test/dummy/public/422.html +26 -0
  99. data/test/dummy/public/500.html +25 -0
  100. data/test/dummy/public/favicon.ico +0 -0
  101. data/test/dummy/script/rails +6 -0
  102. data/test/dummy/tmp/cache/assets/C5D/AF0/sprockets%2Faa100860897bd469c74972020e9d6966 +0 -0
  103. data/test/dummy/tmp/cache/assets/C83/800/sprockets%2F0892f1bdb69d260331b7b414298969c1 +0 -0
  104. data/test/dummy/tmp/cache/assets/C8A/850/sprockets%2F8729404d8f18dcc24e0523d37801589e +0 -0
  105. data/test/dummy/tmp/cache/assets/CC2/EF0/sprockets%2F756af5df20241589c464741d971fd7d8 +0 -0
  106. data/test/dummy/tmp/cache/assets/CC4/B50/sprockets%2F34e848818d05961fdc8c6c275e16629b +0 -0
  107. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  108. data/test/dummy/tmp/cache/assets/CE0/340/sprockets%2F4b6f8f760b2a1789f60289271d20c0be +0 -0
  109. data/test/dummy/tmp/cache/assets/CED/DE0/sprockets%2F18595c4734c4d7582dee3ae35b079a49 +0 -0
  110. data/test/dummy/tmp/cache/assets/CEE/F00/sprockets%2F891ac2c44b3be23865e990924a995fe2 +0 -0
  111. data/test/dummy/tmp/cache/assets/D10/EC0/sprockets%2F73e40114523e8419fcd0efa71d597c5d +0 -0
  112. data/test/dummy/tmp/cache/assets/D11/AE0/sprockets%2Fa1a95d724723a8f11e9037e8d2b28a8f +0 -0
  113. data/test/dummy/tmp/cache/assets/D13/380/sprockets%2F354af7b9709615f6f10e77d7e1b2da15 +0 -0
  114. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  115. data/test/dummy/tmp/cache/assets/D33/4D0/sprockets%2F14f2359cdf393c5e0b6401e233bb2ef5 +0 -0
  116. data/test/dummy/tmp/cache/assets/D3B/BF0/sprockets%2F3b7fb545a51edee1b772b818b2424d56 +0 -0
  117. data/test/dummy/tmp/cache/assets/D3C/B20/sprockets%2F1927fcaeaf1d200dab53e55b86526939 +0 -0
  118. data/test/dummy/tmp/cache/assets/D3F/2C0/sprockets%2F1ada6cc19aa84bf00164875127ef689e +0 -0
  119. data/test/dummy/tmp/cache/assets/D44/140/sprockets%2F341e589bb22dea2848665b989b2ba3ea +0 -0
  120. data/test/dummy/tmp/cache/assets/D4A/700/sprockets%2Fd56d83b8bbc98f0ce23f6263ff796020 +0 -0
  121. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  122. data/test/dummy/tmp/cache/assets/D51/190/sprockets%2F2a28b96857a9e16a74ee9dde52903dc7 +0 -0
  123. data/test/dummy/tmp/cache/assets/D51/610/sprockets%2F34de6f511191ffa00431d50cb5b31eac +0 -0
  124. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  125. data/test/dummy/tmp/cache/assets/D62/7B0/sprockets%2F39cdc1f2f8021136f2034ac5a9dab7f6 +0 -0
  126. data/test/dummy/tmp/cache/assets/D78/5D0/sprockets%2Feb7a1f999039a6136d9cfe25222fdcd5 +0 -0
  127. data/test/dummy/tmp/cache/assets/D7A/A30/sprockets%2F7e54a37cfb268f56b4c49b9f02029bff +0 -0
  128. data/test/dummy/tmp/cache/assets/D98/A30/sprockets%2Fd3cd57a8fade5aef376036123c5e11d6 +0 -0
  129. data/test/dummy/tmp/cache/assets/DA6/B80/sprockets%2F3fea63c0c7e19aae37d6037cd9d987e0 +0 -0
  130. data/test/dummy/tmp/cache/assets/DBA/730/sprockets%2F182cd97bf96da9ad7f037dcda77e8965 +0 -0
  131. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  132. data/test/dummy/tmp/cache/assets/DF9/B80/sprockets%2Fe87d27fca0c65097c5b652becc1eec0b +0 -0
  133. data/test/dummy/tmp/cache/assets/DFA/E90/sprockets%2F1fc47d21f6a426ae1e5d7b1dc9b39dbf +0 -0
  134. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  135. data/test/dummy/tmp/cache/assets/E28/3B0/sprockets%2Fce7fac4e9b4c46afa942e091b54c6aab +0 -0
  136. data/test/dummy/tmp/cache/assets/E3D/360/sprockets%2F19c6fbcf6aaed23dce100b1c1b2b0b8c +0 -0
  137. data/test/dummy/tmp/cache/assets/E89/270/sprockets%2F1bf1ee2ecfe1c679faf4002f4ea8bece +0 -0
  138. data/test/fixtures/plesk_kit/customer_accounts.yml +13 -0
  139. data/test/fixtures/plesk_kit/customers.yml +7 -0
  140. data/test/fixtures/plesk_kit/reseller_accounts.yml +13 -0
  141. data/test/fixtures/plesk_kit/servers.yml +15 -0
  142. data/test/fixtures/plesk_kit/service_plans.yml +13 -0
  143. data/test/fixtures/plesk_kit/subscriptions.yml +17 -0
  144. data/test/fixtures/plesk_kit/webspaces.yml +11 -0
  145. data/test/functional/plesk_kit/customer_accounts_controller_test.rb +51 -0
  146. data/test/functional/plesk_kit/customers_controller_test.rb +51 -0
  147. data/test/functional/plesk_kit/reseller_accounts_controller_test.rb +51 -0
  148. data/test/functional/plesk_kit/servers_controller_test.rb +51 -0
  149. data/test/functional/plesk_kit/subscriptions_controller_test.rb +51 -0
  150. data/test/integration/navigation_test.rb +10 -0
  151. data/test/plesk_kit_test.rb +7 -0
  152. data/test/test_helper.rb +15 -0
  153. data/test/unit/helpers/plesk_kit/customer_accounts_helper_test.rb +6 -0
  154. data/test/unit/helpers/plesk_kit/customers_helper_test.rb +6 -0
  155. data/test/unit/helpers/plesk_kit/reseller_accounts_helper_test.rb +6 -0
  156. data/test/unit/helpers/plesk_kit/servers_helper_test.rb +6 -0
  157. data/test/unit/helpers/plesk_kit/subscriptions_helper_test.rb +6 -0
  158. data/test/unit/plesk_kit/customer_account_test.rb +9 -0
  159. data/test/unit/plesk_kit/customer_test.rb +9 -0
  160. data/test/unit/plesk_kit/reseller_account_test.rb +9 -0
  161. data/test/unit/plesk_kit/server_test.rb +9 -0
  162. data/test/unit/plesk_kit/service_plan_test.rb +9 -0
  163. data/test/unit/plesk_kit/subscription_test.rb +9 -0
  164. data/test/unit/plesk_kit/webspace_test.rb +9 -0
  165. metadata +270 -13
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZmQwYTQyYjZiNjA0MDc1NTZlYTdkMmFkZDZiZWM0N2Y3MDgzYzUwNA==
5
+ data.tar.gz: !binary |-
6
+ ZDI3YTllNmVjNjQ0OTUzNDQ4OTE3ODYyYTY5Y2M2ZWNmODk0NzU5MA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NzA4MmM5MWFlZDQ1MmZjZDk2MzQ4OGIzMWM3NmMzZmQ2YmMxZDI2NGEzNGI0
10
+ OTI3YzYwYTUxZDBhODhiMTUwODJjZTIxYWIxYTExMmJkMzZmYjZjMDA3OTAz
11
+ NzQ4YjBmODJmN2ViNDBiYjIwMmFhNmY2ZmZmODFlZDQ4NGE4MDM=
12
+ data.tar.gz: !binary |-
13
+ YzYyNzQwMmM3N2ZiYTM4YmE0M2ZmOWI4ZjgwMjY4NjY5NDVlMzljNGQxNGYz
14
+ YWQ5ZjRiMzA5OGUxNjg0YTQ2ZjgzY2VjMjE2Y2IyN2FkNTBkOWUyN2ZlNDlj
15
+ MTVkN2I0NzdmN2FkM2E1MTVhNjBjMWVlMWE0NjdmNzlmYWEzOWM=
@@ -0,0 +1,15 @@
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 vendor/assets/javascripts of plugins, if any, 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
+ // the compiled file.
9
+ //
10
+ // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
+ // GO AFTER THE REQUIRES BELOW.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require_tree .
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,13 @@
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 vendor/assets/stylesheets of plugins, if any, 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 top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require_tree .
13
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,56 @@
1
+ body { background-color: #fff; color: #333; }
2
+
3
+ body, p, ol, ul, td {
4
+ font-family: verdana, arial, helvetica, sans-serif;
5
+ font-size: 13px;
6
+ line-height: 18px;
7
+ }
8
+
9
+ pre {
10
+ background-color: #eee;
11
+ padding: 10px;
12
+ font-size: 11px;
13
+ }
14
+
15
+ a { color: #000; }
16
+ a:visited { color: #666; }
17
+ a:hover { color: #fff; background-color:#000; }
18
+
19
+ div.field, div.actions {
20
+ margin-bottom: 10px;
21
+ }
22
+
23
+ #notice {
24
+ color: green;
25
+ }
26
+
27
+ .field_with_errors {
28
+ padding: 2px;
29
+ background-color: red;
30
+ display: table;
31
+ }
32
+
33
+ #error_explanation {
34
+ width: 450px;
35
+ border: 2px solid red;
36
+ padding: 7px;
37
+ padding-bottom: 0;
38
+ margin-bottom: 20px;
39
+ background-color: #f0f0f0;
40
+ }
41
+
42
+ #error_explanation h2 {
43
+ text-align: left;
44
+ font-weight: bold;
45
+ padding: 5px 5px 5px 15px;
46
+ font-size: 12px;
47
+ margin: -7px;
48
+ margin-bottom: 0px;
49
+ background-color: #c00;
50
+ color: #fff;
51
+ }
52
+
53
+ #error_explanation ul li {
54
+ font-size: 12px;
55
+ list-style: square;
56
+ }
@@ -0,0 +1,4 @@
1
+ module PleskKit
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,87 @@
1
+ require_dependency "plesk_kit/application_controller"
2
+
3
+ module PleskKit
4
+ class CustomerAccountsController < ApplicationController
5
+ # GET /customer_accounts
6
+ # GET /customer_accounts.json
7
+ def index
8
+ @customer_accounts = CustomerAccount.all
9
+
10
+ respond_to do |format|
11
+ format.html # index.html.erb
12
+ format.json { render json: @customer_accounts }
13
+ end
14
+ end
15
+
16
+ # GET /customer_accounts/1
17
+ # GET /customer_accounts/1.json
18
+ def show
19
+ @customer_account = CustomerAccount.find(params[:id])
20
+
21
+ respond_to do |format|
22
+ format.html # show.html.erb
23
+ format.json { render json: @customer_account }
24
+ end
25
+ end
26
+
27
+ # GET /customer_accounts/new
28
+ # GET /customer_accounts/new.json
29
+ def new
30
+ @customer_account = CustomerAccount.new
31
+
32
+ respond_to do |format|
33
+ format.html # new.html.erb
34
+ format.json { render json: @customer_account }
35
+ end
36
+ end
37
+
38
+ # GET /customer_accounts/1/edit
39
+ def edit
40
+ @customer_account = CustomerAccount.find(params[:id])
41
+ end
42
+
43
+ # POST /customer_accounts
44
+ # POST /customer_accounts.json
45
+ def create
46
+ @customer_account = CustomerAccount.new(params[:customer_account])
47
+
48
+ respond_to do |format|
49
+ if @customer_account.save
50
+ format.html { redirect_to @customer_account, notice: 'Customer account was successfully created.' }
51
+ format.json { render json: @customer_account, status: :created, location: @customer_account }
52
+ else
53
+ format.html { render action: "new" }
54
+ format.json { render json: @customer_account.errors, status: :unprocessable_entity }
55
+ end
56
+ end
57
+ end
58
+
59
+ # PUT /customer_accounts/1
60
+ # PUT /customer_accounts/1.json
61
+ def update
62
+ @customer_account = CustomerAccount.find(params[:id])
63
+
64
+ respond_to do |format|
65
+ if @customer_account.update_attributes(params[:customer_account])
66
+ format.html { redirect_to @customer_account, notice: 'Customer account was successfully updated.' }
67
+ format.json { head :no_content }
68
+ else
69
+ format.html { render action: "edit" }
70
+ format.json { render json: @customer_account.errors, status: :unprocessable_entity }
71
+ end
72
+ end
73
+ end
74
+
75
+ # DELETE /customer_accounts/1
76
+ # DELETE /customer_accounts/1.json
77
+ def destroy
78
+ @customer_account = CustomerAccount.find(params[:id])
79
+ @customer_account.destroy
80
+
81
+ respond_to do |format|
82
+ format.html { redirect_to customer_accounts_url }
83
+ format.json { head :no_content }
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,87 @@
1
+ require_dependency "plesk_kit/application_controller"
2
+
3
+ module PleskKit
4
+ class ResellerAccountsController < ApplicationController
5
+ # GET /reseller_accounts
6
+ # GET /reseller_accounts.json
7
+ def index
8
+ @reseller_accounts = ResellerAccount.all
9
+
10
+ respond_to do |format|
11
+ format.html # index.html.erb
12
+ format.json { render json: @reseller_accounts }
13
+ end
14
+ end
15
+
16
+ # GET /reseller_accounts/1
17
+ # GET /reseller_accounts/1.json
18
+ def show
19
+ @reseller_account = ResellerAccount.find(params[:id])
20
+
21
+ respond_to do |format|
22
+ format.html # show.html.erb
23
+ format.json { render json: @reseller_account }
24
+ end
25
+ end
26
+
27
+ # GET /reseller_accounts/new
28
+ # GET /reseller_accounts/new.json
29
+ def new
30
+ @reseller_account = ResellerAccount.new
31
+
32
+ respond_to do |format|
33
+ format.html # new.html.erb
34
+ format.json { render json: @reseller_account }
35
+ end
36
+ end
37
+
38
+ # GET /reseller_accounts/1/edit
39
+ def edit
40
+ @reseller_account = ResellerAccount.find(params[:id])
41
+ end
42
+
43
+ # POST /reseller_accounts
44
+ # POST /reseller_accounts.json
45
+ def create
46
+ @reseller_account = ResellerAccount.new(params[:reseller_account])
47
+
48
+ respond_to do |format|
49
+ if @reseller_account.save
50
+ format.html { redirect_to @reseller_account, notice: 'Reseller account was successfully created.' }
51
+ format.json { render json: @reseller_account, status: :created, location: @reseller_account }
52
+ else
53
+ format.html { render action: "new" }
54
+ format.json { render json: @reseller_account.errors, status: :unprocessable_entity }
55
+ end
56
+ end
57
+ end
58
+
59
+ # PUT /reseller_accounts/1
60
+ # PUT /reseller_accounts/1.json
61
+ def update
62
+ @reseller_account = ResellerAccount.find(params[:id])
63
+
64
+ respond_to do |format|
65
+ if @reseller_account.update_attributes(params[:reseller_account])
66
+ format.html { redirect_to @reseller_account, notice: 'Reseller account was successfully updated.' }
67
+ format.json { head :no_content }
68
+ else
69
+ format.html { render action: "edit" }
70
+ format.json { render json: @reseller_account.errors, status: :unprocessable_entity }
71
+ end
72
+ end
73
+ end
74
+
75
+ # DELETE /reseller_accounts/1
76
+ # DELETE /reseller_accounts/1.json
77
+ def destroy
78
+ @reseller_account = ResellerAccount.find(params[:id])
79
+ @reseller_account.destroy
80
+
81
+ respond_to do |format|
82
+ format.html { redirect_to reseller_accounts_url }
83
+ format.json { head :no_content }
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,87 @@
1
+ require_dependency "plesk_kit/application_controller"
2
+
3
+ module PleskKit
4
+ class ServersController < ApplicationController
5
+ # GET /servers
6
+ # GET /servers.json
7
+ def index
8
+ @servers = Server.all
9
+
10
+ respond_to do |format|
11
+ format.html # index.html.erb
12
+ format.json { render json: @servers }
13
+ end
14
+ end
15
+
16
+ # GET /servers/1
17
+ # GET /servers/1.json
18
+ def show
19
+ @server = Server.find(params[:id])
20
+
21
+ respond_to do |format|
22
+ format.html # show.html.erb
23
+ format.json { render json: @server }
24
+ end
25
+ end
26
+
27
+ # GET /servers/new
28
+ # GET /servers/new.json
29
+ def new
30
+ @server = Server.new
31
+
32
+ respond_to do |format|
33
+ format.html # new.html.erb
34
+ format.json { render json: @server }
35
+ end
36
+ end
37
+
38
+ # GET /servers/1/edit
39
+ def edit
40
+ @server = Server.find(params[:id])
41
+ end
42
+
43
+ # POST /servers
44
+ # POST /servers.json
45
+ def create
46
+ @server = Server.new(params[:server])
47
+
48
+ respond_to do |format|
49
+ if @server.save
50
+ format.html { redirect_to @server, notice: 'Server was successfully created.' }
51
+ format.json { render json: @server, status: :created, location: @server }
52
+ else
53
+ format.html { render action: "new" }
54
+ format.json { render json: @server.errors, status: :unprocessable_entity }
55
+ end
56
+ end
57
+ end
58
+
59
+ # PUT /servers/1
60
+ # PUT /servers/1.json
61
+ def update
62
+ @server = Server.find(params[:id])
63
+
64
+ respond_to do |format|
65
+ if @server.update_attributes(params[:server])
66
+ format.html { redirect_to @server, notice: 'Server was successfully updated.' }
67
+ format.json { head :no_content }
68
+ else
69
+ format.html { render action: "edit" }
70
+ format.json { render json: @server.errors, status: :unprocessable_entity }
71
+ end
72
+ end
73
+ end
74
+
75
+ # DELETE /servers/1
76
+ # DELETE /servers/1.json
77
+ def destroy
78
+ @server = Server.find(params[:id])
79
+ @server.destroy
80
+
81
+ respond_to do |format|
82
+ format.html { redirect_to servers_url }
83
+ format.json { head :no_content }
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,87 @@
1
+ require_dependency "plesk_kit/application_controller"
2
+
3
+ module PleskKit
4
+ class SubscriptionsController < ApplicationController
5
+ # GET /subscriptions
6
+ # GET /subscriptions.json
7
+ def index
8
+ @subscriptions = Subscription.all
9
+
10
+ respond_to do |format|
11
+ format.html # index.html.erb
12
+ format.json { render json: @subscriptions }
13
+ end
14
+ end
15
+
16
+ # GET /subscriptions/1
17
+ # GET /subscriptions/1.json
18
+ def show
19
+ @subscription = Subscription.find(params[:id])
20
+
21
+ respond_to do |format|
22
+ format.html # show.html.erb
23
+ format.json { render json: @subscription }
24
+ end
25
+ end
26
+
27
+ # GET /subscriptions/new
28
+ # GET /subscriptions/new.json
29
+ def new
30
+ @subscription = Subscription.new
31
+
32
+ respond_to do |format|
33
+ format.html # new.html.erb
34
+ format.json { render json: @subscription }
35
+ end
36
+ end
37
+
38
+ # GET /subscriptions/1/edit
39
+ def edit
40
+ @subscription = Subscription.find(params[:id])
41
+ end
42
+
43
+ # POST /subscriptions
44
+ # POST /subscriptions.json
45
+ def create
46
+ @subscription = Subscription.new(params[:subscription])
47
+
48
+ respond_to do |format|
49
+ if @subscription.save
50
+ format.html { redirect_to @subscription, notice: 'Subscription was successfully created.' }
51
+ format.json { render json: @subscription, status: :created, location: @subscription }
52
+ else
53
+ format.html { render action: "new" }
54
+ format.json { render json: @subscription.errors, status: :unprocessable_entity }
55
+ end
56
+ end
57
+ end
58
+
59
+ # PUT /subscriptions/1
60
+ # PUT /subscriptions/1.json
61
+ def update
62
+ @subscription = Subscription.find(params[:id])
63
+
64
+ respond_to do |format|
65
+ if @subscription.update_attributes(params[:subscription])
66
+ format.html { redirect_to @subscription, notice: 'Subscription was successfully updated.' }
67
+ format.json { head :no_content }
68
+ else
69
+ format.html { render action: "edit" }
70
+ format.json { render json: @subscription.errors, status: :unprocessable_entity }
71
+ end
72
+ end
73
+ end
74
+
75
+ # DELETE /subscriptions/1
76
+ # DELETE /subscriptions/1.json
77
+ def destroy
78
+ @subscription = Subscription.find(params[:id])
79
+ @subscription.destroy
80
+
81
+ respond_to do |format|
82
+ format.html { redirect_to subscriptions_url }
83
+ format.json { head :no_content }
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,4 @@
1
+ module PleskKit
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PleskKit
2
+ module CustomerAccountsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PleskKit
2
+ module ResellerAccountsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PleskKit
2
+ module ServersHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PleskKit
2
+ module SubscriptionsHelper
3
+ end
4
+ end
@@ -0,0 +1,25 @@
1
+ module PleskKit
2
+ class Client
3
+ attr_accessor :host, :user, :pass, :timeout, :rpc_version, :xml_response, :xml_target
4
+ def initialize(server)
5
+ @host, @user, @pass, @timeout = server.host, server.username, server.password, 30
6
+ end
7
+
8
+ def send_to_plesk(xml)
9
+ http = Net::HTTP.new(@host, 8443)
10
+ puts http.inspect
11
+ http.use_ssl = true
12
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
13
+ @headers = {
14
+ 'HTTP_AUTH_LOGIN' => @user,
15
+ 'HTTP_AUTH_PASSWD' => @pass,
16
+ 'Content-Type' => 'text/xml',
17
+ }
18
+ puts @headers
19
+ path = "/enterprise/control/agent.php"
20
+ res, data = http.post2(path, xml, @headers)
21
+ puts res
22
+ return res.body, xml
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,55 @@
1
+ module PleskKit
2
+ class Communicator
3
+
4
+ require 'net/http'
5
+ require 'builder'
6
+ require "rexml/document"
7
+
8
+ # The shell for the XML
9
+ def self.shell
10
+ Builder::XmlMarkup.new
11
+ end
12
+
13
+ def pack_and_play_with_customer_or_reseller account
14
+ server = PleskKit::Server.where(:environment => Rails.env.to_s, :platform => account.platform).first
15
+ packet = account.pack_this shell
16
+ response = transportation_for packet,server
17
+ account.analyse response[0], server.id
18
+ end
19
+
20
+ def pack_and_play_with_subscription subscription, customer_account
21
+ server = customer_account.server
22
+ packet = subscription.pack_this shell, customer_account
23
+ response = transportation_for packet,server
24
+ subscription.analyse response[0],customer_account
25
+ end
26
+
27
+ def self.sync_subscription sub, sub_guid
28
+ server = PleskKit::Server.first
29
+ packet = sub.sync_pack shell,sub_guid
30
+ response = transportation_for packet,server
31
+ sub.analyse response[0]
32
+ end
33
+
34
+ def self.get_service_plan service_plan, server
35
+ server = PleskKit::Server.first
36
+ packet = service_plan.build_xml_for_get shell
37
+ response = transportation_for packet, server
38
+ service_plan.analyse response[0], server
39
+ end
40
+
41
+ def self.push_service_plan service_plan, server
42
+ server = PleskKit::Server.first
43
+ packet = service_plan.build_xml_for_add shell
44
+ response = transportation_for packet, server
45
+ service_plan.analyse response[0], server
46
+ end
47
+
48
+ # Sends packet to plesk
49
+ def self.transportation_for packet, server
50
+ c = PleskKit::Client.new(server)
51
+ c.send_to_plesk packet
52
+ end
53
+
54
+ end
55
+ end