superbot-cloud 0.2.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/Gemfile.lock +1 -1
- data/lib/superbot/cloud/api.rb +3 -0
- data/lib/superbot/cloud/cli/login_required_command.rb +24 -0
- data/lib/superbot/cloud/cli/member/add_command.rb +0 -3
- data/lib/superbot/cloud/cli/member/base_command.rb +1 -2
- data/lib/superbot/cloud/cli/member/list_command.rb +0 -3
- data/lib/superbot/cloud/cli/member/remove_command.rb +0 -3
- data/lib/superbot/cloud/cli/member_command.rb +1 -12
- data/lib/superbot/cloud/cli/organization/list_command.rb +0 -3
- data/lib/superbot/cloud/cli/organization_based_command.rb +11 -0
- data/lib/superbot/cloud/cli/organization_command.rb +1 -8
- data/lib/superbot/cloud/cli/root_command.rb +5 -1
- data/lib/superbot/cloud/cli/schedule/base_command.rb +12 -0
- data/lib/superbot/cloud/cli/schedule/cancel_command.rb +28 -0
- data/lib/superbot/cloud/cli/schedule/list_command.rb +49 -0
- data/lib/superbot/cloud/cli/schedule_command.rb +16 -0
- data/lib/superbot/cloud/cli/test/base_command.rb +1 -2
- data/lib/superbot/cloud/cli/test/delete_command.rb +0 -3
- data/lib/superbot/cloud/cli/test/download_command.rb +0 -3
- data/lib/superbot/cloud/cli/test/list_command.rb +0 -3
- data/lib/superbot/cloud/cli/test/schedule_command.rb +33 -0
- data/lib/superbot/cloud/cli/test/upload_command.rb +1 -4
- data/lib/superbot/cloud/cli/test_command.rb +3 -8
- data/lib/superbot/cloud/cli/webdriver/base_command.rb +12 -0
- data/lib/superbot/cloud/cli/webdriver/delete_command.rb +11 -15
- data/lib/superbot/cloud/cli/webdriver/list_command.rb +4 -5
- data/lib/superbot/cloud/cli/webdriver_command.rb +2 -8
- data/lib/superbot/cloud/version.rb +1 -1
- data/lib/superbot/cloud/web.rb +4 -1
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 614054f58998b305958b0bca9bcb88ab2c51df2453808252ff37c4ba322aafad
|
4
|
+
data.tar.gz: 337f44708673aac80e59b915d137b134f330da8c142fd7e2fd5c6cffae38fe25
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57494354cffc30fc8eea756a42f58dceb6b5f60d735d34aaa43973b37f9388ebc1f94080d71ace476b8fbd39df666e503dd3d4ff5f8411aeb5261d1361c29dbd
|
7
|
+
data.tar.gz: 52da377337dee2ca37ec0d4342653a65b8f3779dbbdde262bca0306c9fe48c2a8ce096274787f836d291e20ecc4e9c70f24f07eeb0d54a8fdf63f6731e131492
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
data/lib/superbot/cloud/api.rb
CHANGED
@@ -14,6 +14,9 @@ module Superbot
|
|
14
14
|
test_upload: { method: :post_multipart, endpoint: 'tests' },
|
15
15
|
test_download: { method: :get, endpoint: 'tests', required_param: :name },
|
16
16
|
delete_test: { method: :delete, endpoint: 'tests', required_param: :name },
|
17
|
+
schedule_test: { method: :post, endpoint: 'schedules' },
|
18
|
+
schedule_list: { method: :get, endpoint: 'schedules' },
|
19
|
+
cancel_schedule: { method: :delete, endpoint: 'schedules', required_param: :id },
|
17
20
|
webdriver_session_list: { method: :get, endpoint: 'webdriver_sessions' },
|
18
21
|
delete_webdriver_session: { method: :delete, endpoint: 'webdriver_sessions', required_param: :session_id },
|
19
22
|
organization_members_list: { method: :get, endpoint: 'members' },
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
class LoginRequiredCommand < Clamp::Command
|
7
|
+
include Superbot::Cloud::Validations
|
8
|
+
|
9
|
+
def run(args)
|
10
|
+
require_login
|
11
|
+
super
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.run
|
15
|
+
require_login
|
16
|
+
super
|
17
|
+
rescue StandardError => exc
|
18
|
+
warn exc.message
|
19
|
+
warn exc.backtrace.join("\n")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -4,8 +4,7 @@ module Superbot
|
|
4
4
|
module Cloud
|
5
5
|
module CLI
|
6
6
|
module Member
|
7
|
-
class BaseCommand <
|
8
|
-
option ["--org"], "ORGANIZATION", "Organization to to take actions on", attribute_name: :organization
|
7
|
+
class BaseCommand < OrganizationBasedCommand
|
9
8
|
end
|
10
9
|
end
|
11
10
|
end
|
@@ -8,21 +8,10 @@ require_relative 'member/list_command'
|
|
8
8
|
module Superbot
|
9
9
|
module Cloud
|
10
10
|
module CLI
|
11
|
-
class MemberCommand <
|
12
|
-
include Superbot::Cloud::Validations
|
13
|
-
|
11
|
+
class MemberCommand < LoginRequiredCommand
|
14
12
|
subcommand ['add'], "Add member to organization", Member::AddCommand
|
15
13
|
subcommand ['remove'], "Remove member from organization", Member::RemoveCommand
|
16
14
|
subcommand ['list'], "List your organization members", Member::ListCommand
|
17
|
-
|
18
|
-
|
19
|
-
def self.run
|
20
|
-
require_login
|
21
|
-
super
|
22
|
-
rescue StandardError => exc
|
23
|
-
warn exc.message
|
24
|
-
warn exc.backtrace.join("\n")
|
25
|
-
end
|
26
15
|
end
|
27
16
|
end
|
28
17
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
class OrganizationBasedCommand < LoginRequiredCommand
|
7
|
+
option ["--org"], "ORGANIZATION", "Organization to to take actions on", attribute_name: :organization
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -5,15 +5,8 @@ require_relative 'organization/list_command'
|
|
5
5
|
module Superbot
|
6
6
|
module Cloud
|
7
7
|
module CLI
|
8
|
-
class OrganizationCommand <
|
8
|
+
class OrganizationCommand < LoginRequiredCommand
|
9
9
|
subcommand ['list'], "List user organizations from the cloud", Organization::ListCommand
|
10
|
-
|
11
|
-
def self.run
|
12
|
-
super
|
13
|
-
rescue StandardError => exc
|
14
|
-
warn exc.message
|
15
|
-
warn exc.backtrace.join("\n")
|
16
|
-
end
|
17
10
|
end
|
18
11
|
end
|
19
12
|
end
|
@@ -4,10 +4,13 @@ require_relative 'validations'
|
|
4
4
|
require_relative 'version_command'
|
5
5
|
require_relative 'login_command'
|
6
6
|
require_relative 'logout_command'
|
7
|
+
require_relative 'login_required_command'
|
8
|
+
require_relative 'organization_based_command'
|
7
9
|
require_relative 'organization_command'
|
8
10
|
require_relative 'test_command'
|
9
11
|
require_relative 'webdriver_command'
|
10
12
|
require_relative 'member_command'
|
13
|
+
require_relative 'schedule_command'
|
11
14
|
|
12
15
|
module Superbot
|
13
16
|
module Cloud
|
@@ -16,10 +19,11 @@ module Superbot
|
|
16
19
|
subcommand ['version'], 'Superbot cloud version', VersionCommand
|
17
20
|
subcommand ['login'], 'Authorize superbot to access cloud API with Superbot Cloud user credentials', LoginCommand
|
18
21
|
subcommand ['logout'], 'Revoke credentials for an account', LogoutCommand
|
19
|
-
subcommand
|
22
|
+
subcommand ['org'], 'Manage your organizations', OrganizationCommand
|
20
23
|
subcommand ['test'], "Manage your tests", TestCommand
|
21
24
|
subcommand ['webdriver'], "Manage your webdriver sessions", WebdriverCommand
|
22
25
|
subcommand ['member'], "Manage your organization members", MemberCommand
|
26
|
+
subcommand(['schedule'], "Manage your test schedules", ScheduleCommand) if ENV['SUPERBOT_FEAT_SCHEDULE'] == 'true'
|
23
27
|
|
24
28
|
option ['-v', '--version'], :flag, "Show version information" do
|
25
29
|
puts Superbot::Cloud::VERSION
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
module Schedule
|
7
|
+
class CancelCommand < BaseCommand
|
8
|
+
parameter "ID ...", "the IDs of the schedule to cancel", required: true
|
9
|
+
|
10
|
+
def execute
|
11
|
+
delete_schedule
|
12
|
+
end
|
13
|
+
|
14
|
+
def delete_schedule
|
15
|
+
id_list.each do |schedule_id|
|
16
|
+
begin
|
17
|
+
Superbot::Cloud::Api.request(:cancel_schedule, params: { id: schedule_id, organization_name: organization })
|
18
|
+
puts "Test schedule #{schedule_id} successfully cancelled"
|
19
|
+
rescue SystemExit
|
20
|
+
p # skip to next schedule
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
module Schedule
|
7
|
+
class ListCommand < BaseCommand
|
8
|
+
OUTPUT_HEADERS = {
|
9
|
+
id: { name: "ID", column_size: 10 },
|
10
|
+
test_name: { name: "Test", column_size: 25 },
|
11
|
+
starts_at: { name: "Scheduled Time", column_size: 25 },
|
12
|
+
region: { name: "Region", column_size: 20 },
|
13
|
+
status: { name: "Status", column_size: 10 },
|
14
|
+
parallel: { name: "User load", column_size: 10 }
|
15
|
+
}.freeze
|
16
|
+
|
17
|
+
option %w[-q --quiet], :flag, "Only show schedule IDs"
|
18
|
+
option %w[-a --all], :flag, "Show all the schedules (including finished)"
|
19
|
+
|
20
|
+
def execute
|
21
|
+
list_schedules
|
22
|
+
end
|
23
|
+
|
24
|
+
def list_schedules
|
25
|
+
states = all? ? nil : %w[initial processing]
|
26
|
+
api_response = Superbot::Cloud::Api.request(:schedule_list, params: { organization_name: organization, 'aasm_state[]': states })
|
27
|
+
|
28
|
+
abort api_response[:error] if api_response[:error]
|
29
|
+
abort "No active schedules found for organization #{api_response[:organization]}" if api_response[:schedules].empty?
|
30
|
+
|
31
|
+
if quiet?
|
32
|
+
puts(api_response[:schedules].map { |schedule| schedule[:id] })
|
33
|
+
else
|
34
|
+
puts "Organization: #{api_response[:organization]}"
|
35
|
+
puts "Schedules:"
|
36
|
+
puts OUTPUT_HEADERS.values.map { |header| header[:name].ljust(header[:column_size]) }.join
|
37
|
+
api_response[:schedules].each do |schedule|
|
38
|
+
row = schedule.slice(*OUTPUT_HEADERS.keys).map do |key, value|
|
39
|
+
value.to_s.ljust(OUTPUT_HEADERS.dig(key, :column_size))
|
40
|
+
end.join
|
41
|
+
puts row
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'schedule/base_command'
|
4
|
+
require_relative 'schedule/list_command'
|
5
|
+
require_relative 'schedule/cancel_command'
|
6
|
+
|
7
|
+
module Superbot
|
8
|
+
module Cloud
|
9
|
+
module CLI
|
10
|
+
class ScheduleCommand < LoginRequiredCommand
|
11
|
+
subcommand ['list'], "List your schedules", Schedule::ListCommand
|
12
|
+
subcommand ['cancel'], "Cancel your schedule", Schedule::CancelCommand
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -4,8 +4,7 @@ module Superbot
|
|
4
4
|
module Cloud
|
5
5
|
module CLI
|
6
6
|
module Test
|
7
|
-
class BaseCommand <
|
8
|
-
option ["--org"], "ORGANIZATION", "Organization to to take actions on", attribute_name: :organization
|
7
|
+
class BaseCommand < OrganizationBasedCommand
|
9
8
|
end
|
10
9
|
end
|
11
10
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
module Test
|
7
|
+
class ScheduleCommand < BaseCommand
|
8
|
+
parameter "NAME", "the name of the test to delete", required: true
|
9
|
+
option ['--region'], 'REGION', 'Region for remote webdriver'
|
10
|
+
option ['--user-load'], 'USER_LOAD', 'Number of concurrent users'
|
11
|
+
|
12
|
+
def execute
|
13
|
+
schedule_test
|
14
|
+
end
|
15
|
+
|
16
|
+
def schedule_test
|
17
|
+
Superbot::Cloud::Api.request(:schedule_test, params: schedule_params)
|
18
|
+
puts "Tests successfully scheduled"
|
19
|
+
end
|
20
|
+
|
21
|
+
def schedule_params
|
22
|
+
{
|
23
|
+
test_name: name,
|
24
|
+
region: region,
|
25
|
+
organization_name: organization,
|
26
|
+
parallel: user_load
|
27
|
+
}.compact
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -10,12 +10,9 @@ module Superbot
|
|
10
10
|
module CLI
|
11
11
|
module Test
|
12
12
|
class UploadCommand < BaseCommand
|
13
|
-
include Superbot::Cloud::Validations
|
14
|
-
|
15
13
|
parameter "PATH", "the path to folder containing tests to upload"
|
16
14
|
|
17
15
|
def execute
|
18
|
-
require_login
|
19
16
|
upload_tests
|
20
17
|
end
|
21
18
|
|
@@ -29,7 +26,7 @@ module Superbot
|
|
29
26
|
api_response = Superbot::Cloud::Api.request(
|
30
27
|
:test_upload,
|
31
28
|
params: {
|
32
|
-
name: Zaru.sanitize!(path),
|
29
|
+
name: Zaru.sanitize!(File.basename(path)),
|
33
30
|
organization_name: organization,
|
34
31
|
file: UploadIO.new(file, content_type, filename)
|
35
32
|
}
|
@@ -5,22 +5,17 @@ require_relative 'test/list_command'
|
|
5
5
|
require_relative 'test/upload_command'
|
6
6
|
require_relative 'test/download_command'
|
7
7
|
require_relative 'test/delete_command'
|
8
|
+
require_relative 'test/schedule_command'
|
8
9
|
|
9
10
|
module Superbot
|
10
11
|
module Cloud
|
11
12
|
module CLI
|
12
|
-
class TestCommand <
|
13
|
+
class TestCommand < OrganizationBasedCommand
|
13
14
|
subcommand ['list'], "List user tests from the cloud", Test::ListCommand
|
14
15
|
subcommand ['upload'], "Upload test to the cloud", Test::UploadCommand
|
15
16
|
subcommand ['download'], "Download test from the cloud", Test::DownloadCommand
|
16
17
|
subcommand ['delete'], "Delete test from the cloud", Test::DeleteCommand
|
17
|
-
|
18
|
-
def self.run
|
19
|
-
super
|
20
|
-
rescue StandardError => exc
|
21
|
-
warn exc.message
|
22
|
-
warn exc.backtrace.join("\n")
|
23
|
-
end
|
18
|
+
subcommand(['schedule'], "Schedule a test", Test::ScheduleCommand) if ENV['SUPERBOT_FEAT_SCHEDULE'] == 'true'
|
24
19
|
end
|
25
20
|
end
|
26
21
|
end
|
@@ -4,30 +4,26 @@ module Superbot
|
|
4
4
|
module Cloud
|
5
5
|
module CLI
|
6
6
|
module Webdriver
|
7
|
-
class DeleteCommand <
|
8
|
-
include Superbot::Cloud::Validations
|
9
|
-
|
7
|
+
class DeleteCommand < BaseCommand
|
10
8
|
parameter "SESSION_ID ...", "webdriver session ID", required: true
|
11
9
|
|
12
10
|
def execute
|
13
|
-
require_login
|
14
11
|
delete_session
|
15
12
|
end
|
16
13
|
|
17
14
|
def delete_session
|
18
15
|
session_id_list.each do |session_id|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
16
|
+
Superbot::Cloud::Api.request(
|
17
|
+
:delete_webdriver_session,
|
18
|
+
params: {
|
19
|
+
session_id: session_id,
|
20
|
+
organization_name: organization
|
21
|
+
}
|
22
|
+
)
|
26
23
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
end
|
24
|
+
puts "Webdriver session #{session_id} removal has been requested."
|
25
|
+
rescue SystemExit
|
26
|
+
p # skip to next webdriver session
|
31
27
|
end
|
32
28
|
end
|
33
29
|
end
|
@@ -4,8 +4,7 @@ module Superbot
|
|
4
4
|
module Cloud
|
5
5
|
module CLI
|
6
6
|
module Webdriver
|
7
|
-
class ListCommand <
|
8
|
-
include Superbot::Cloud::Validations
|
7
|
+
class ListCommand < BaseCommand
|
9
8
|
OUTPUT_HEADERS = {
|
10
9
|
session_id: "Session ID",
|
11
10
|
created_at: "Created at",
|
@@ -16,20 +15,20 @@ module Superbot
|
|
16
15
|
option %w[-a --all], :flag, "Show all the sessions (including finished)"
|
17
16
|
|
18
17
|
def execute
|
19
|
-
require_login
|
20
18
|
list_sessions
|
21
19
|
end
|
22
20
|
|
23
21
|
def list_sessions
|
24
22
|
states = all? ? nil : %w[idle proxying]
|
25
|
-
api_response = Superbot::Cloud::Api.request(:webdriver_session_list, params: { 'aasm_state[]': states })
|
23
|
+
api_response = Superbot::Cloud::Api.request(:webdriver_session_list, params: { organization_name: organization, 'aasm_state[]': states })
|
26
24
|
abort api_response[:error] if api_response[:error]
|
27
25
|
|
28
|
-
abort "No sessions found" if api_response[:webdriver_sessions].empty?
|
26
|
+
abort "No active sessions found for #{api_response[:organization]} organization" if api_response[:webdriver_sessions].empty?
|
29
27
|
|
30
28
|
if quiet?
|
31
29
|
puts(api_response[:webdriver_sessions].map { |session| session[:session_id] })
|
32
30
|
else
|
31
|
+
puts "Organization: #{api_response[:organization]}"
|
33
32
|
puts OUTPUT_HEADERS.values.map { |header| header.ljust(35) }.join
|
34
33
|
puts ''.ljust(35 * OUTPUT_HEADERS.length, '-')
|
35
34
|
api_response[:webdriver_sessions].each do |webdriver_session|
|
@@ -1,21 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'webdriver/base_command'
|
3
4
|
require_relative 'webdriver/list_command'
|
4
5
|
require_relative 'webdriver/delete_command'
|
5
6
|
|
6
7
|
module Superbot
|
7
8
|
module Cloud
|
8
9
|
module CLI
|
9
|
-
class WebdriverCommand <
|
10
|
+
class WebdriverCommand < LoginRequiredCommand
|
10
11
|
subcommand ['list'], "List all webdriver sessions", Webdriver::ListCommand
|
11
12
|
subcommand ['delete'], "Terminate and finish specific session", Webdriver::DeleteCommand
|
12
|
-
|
13
|
-
def self.run
|
14
|
-
super
|
15
|
-
rescue StandardError => exc
|
16
|
-
warn exc.message
|
17
|
-
warn exc.backtrace.join("\n")
|
18
|
-
end
|
19
13
|
end
|
20
14
|
end
|
21
15
|
end
|
data/lib/superbot/cloud/web.rb
CHANGED
@@ -7,8 +7,11 @@ module Superbot
|
|
7
7
|
sinatra.get "/login" do
|
8
8
|
credentials = request.params.slice('username', 'email', 'token')
|
9
9
|
Superbot::Cloud.save_credentials(credentials)
|
10
|
+
redirect "#{Superbot::Cloud::LOGIN_URI}/success"
|
11
|
+
end
|
12
|
+
|
13
|
+
sinatra.after "/login" do
|
10
14
|
sinatra.quit!
|
11
|
-
redirect "#{Superbot::Cloud::LOGIN_URI}/success?username=#{Superbot::Cloud.credentials[:username]}"
|
12
15
|
end
|
13
16
|
end
|
14
17
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: superbot-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Superbots
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multipart-post
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- lib/superbot/cloud/api.rb
|
138
138
|
- lib/superbot/cloud/cli.rb
|
139
139
|
- lib/superbot/cloud/cli/login_command.rb
|
140
|
+
- lib/superbot/cloud/cli/login_required_command.rb
|
140
141
|
- lib/superbot/cloud/cli/logout_command.rb
|
141
142
|
- lib/superbot/cloud/cli/member/add_command.rb
|
142
143
|
- lib/superbot/cloud/cli/member/base_command.rb
|
@@ -144,16 +145,23 @@ files:
|
|
144
145
|
- lib/superbot/cloud/cli/member/remove_command.rb
|
145
146
|
- lib/superbot/cloud/cli/member_command.rb
|
146
147
|
- lib/superbot/cloud/cli/organization/list_command.rb
|
148
|
+
- lib/superbot/cloud/cli/organization_based_command.rb
|
147
149
|
- lib/superbot/cloud/cli/organization_command.rb
|
148
150
|
- lib/superbot/cloud/cli/root_command.rb
|
151
|
+
- lib/superbot/cloud/cli/schedule/base_command.rb
|
152
|
+
- lib/superbot/cloud/cli/schedule/cancel_command.rb
|
153
|
+
- lib/superbot/cloud/cli/schedule/list_command.rb
|
154
|
+
- lib/superbot/cloud/cli/schedule_command.rb
|
149
155
|
- lib/superbot/cloud/cli/test/base_command.rb
|
150
156
|
- lib/superbot/cloud/cli/test/delete_command.rb
|
151
157
|
- lib/superbot/cloud/cli/test/download_command.rb
|
152
158
|
- lib/superbot/cloud/cli/test/list_command.rb
|
159
|
+
- lib/superbot/cloud/cli/test/schedule_command.rb
|
153
160
|
- lib/superbot/cloud/cli/test/upload_command.rb
|
154
161
|
- lib/superbot/cloud/cli/test_command.rb
|
155
162
|
- lib/superbot/cloud/cli/validations.rb
|
156
163
|
- lib/superbot/cloud/cli/version_command.rb
|
164
|
+
- lib/superbot/cloud/cli/webdriver/base_command.rb
|
157
165
|
- lib/superbot/cloud/cli/webdriver/delete_command.rb
|
158
166
|
- lib/superbot/cloud/cli/webdriver/list_command.rb
|
159
167
|
- lib/superbot/cloud/cli/webdriver_command.rb
|