class Aspera::Cli::Plugins::Bss
Constants
- ACTIONS
- FIELDS
Public Class Methods
new(env)
click to toggle source
Calls superclass method
Aspera::Cli::BasicAuthPlugin::new
# File lib/aspera/cli/plugins/bss.rb, line 14 def initialize(env) super(env) if env.has_key?(:bss_api) @api_bss=env[:bss_api] end end
Public Instance Methods
all_fields(name)
click to toggle source
# File lib/aspera/cli/plugins/bss.rb, line 21 def all_fields(name) return FIELDS[name].join(' ') end
execute_action()
click to toggle source
# File lib/aspera/cli/plugins/bss.rb, line 25 def execute_action if @api_bss.nil? key = self.options.get_option(:password,:mandatory) @api_bss=Rest.new( base_url: 'https://dashboard.bss.asperasoft.com/platform', headers: {cookie: "_dashboard_key=#{key}"}) end command=self.options.get_next_command(ACTIONS) case command when :subscription command=self.options.get_next_command([:find,:show, :instances]) object='bssSubscriptions' case command when :find query = self.options.get_option(:query,:mandatory) # AOC_ORGANIZATION_QUERY AOC_USER_EMAIL value = self.options.get_option(:value,:mandatory) request={ 'variables'=>{'filter'=>{'key'=>query,'value'=>value}}, 'query'=>"query($filter: BssSubscriptionFilter!) {#{object}(filter: $filter) { #{all_fields('bssSubscriptions')} } }" } result=@api_bss.create('graphql',request)[:data] # give fields to keep order return {:type=>:object_list, :data=>result['data'][object],:fields=> FIELDS['bssSubscriptions']} when :show id = self.options.get_option(:id,:mandatory) request={ 'variables'=>{'id'=>id}, 'query'=>"query($id: ID!) {#{object}(id: $id) { #{all_fields('bssSubscriptions')} roleAssignments(uniqueSubjectId: true) { id subjectId } instances { id state planId serviceId ssmSubscriptionId entitlement { id } aocOrganization { id subdomainName name status tier urlId trialExpiresAt users(organizationAdmin: true) { id name email atsAdmin subscriptionAdmin } } } } }" } result=@api_bss.create('graphql',request)[:data]['data'][object].first result.delete('instances') return {:type=>:single_object, :data=>result} when :instances id = self.options.get_option(:id,:mandatory) request={ 'variables'=>{'id'=>id}, 'query'=>"query($id: ID!) {#{object}(id: $id) { aocOrganization { id subdomainName name status tier urlId trialExpiresAt } } } }" } result=@api_bss.create('graphql',request)[:data]['data'][object].first return {:type=>:object_list, :data=>result['instances']} end end end