superbot-cloud 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|