Class: Emasser::Software
- Inherits:
-
SubCommandBase
- Object
- Thor
- SubCommandBase
- Emasser::Software
- Defined in:
- lib/emasser/get.rb,
lib/emasser/put.rb,
lib/emasser/post.rb,
lib/emasser/delete.rb
Overview
Remove one or many software assets in a system
Endpoint:
/api/systems/{systemId}/sw-baseline
Class Method Summary collapse
Instance Method Summary collapse
-
#add ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity.
- #assets ⇒ Object
- #remove ⇒ Object
-
#update ⇒ Object
rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity.
Methods inherited from SubCommandBase
Methods included from OutputConverters
#change_to_datetime, #to_output_hash
Methods included from InputConverters
Methods included from OptionsParser
#optional_options, #required_options
Class Method Details
.exit_on_failure? ⇒ Boolean
599 600 601 |
# File 'lib/emasser/get.rb', line 599 def self.exit_on_failure? true end |
Instance Method Details
#add ⇒ Object
rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 |
# File 'lib/emasser/post.rb', line 712 def add # Required fields require_field = EmassClient::SwBaselineRequiredFields.new require_field.software_vendor = [:softwareVendor] require_field.software_name = [:softwareName] require_field.version = [:version] # Conditional fields conditional_fields = EmassClient::SwBaselineConditionalFields.new conditional_fields.approval_date = [:approvalDate] if [:approvalDate] # Optional fields optional_fields = EmassClient::SwBaselineOptionalFields.new optional_fields.software_type = [:softwareType] if [:softwareType] optional_fields.parent_system = [:parentSystem] if [:parentSystem] optional_fields.subsystem = [:subsystem] if [:subsystem] optional_fields.network = [:network] if [:network] optional_fields.hosting_environment = [:hostingEnvironment] if [:hostingEnvironment] optional_fields.software_dependencies = [:softwareDependencies] if [:softwareDependencies] optional_fields.cryptographic_hash = [:cryptographicHash] if [:cryptographicHash] optional_fields.in_service_data = [:inServiceData] if [:inServiceData] optional_fields.it_budget_uii = [:itBudgetUii] if [:itBudgetUii] optional_fields.fiscal_year = [:fiscalYear] if [:fiscalYear] optional_fields.pop_end_date = [:popEndDate] if [:popEndDate] optional_fields.license_or_contract = [:licenseOrContract] if [:licenseOrContract] optional_fields.license_term = [:licenseTerm] if [:licenseTerm] optional_fields.cost_per_license = [:costPerLicense] if [:costPerLicense] optional_fields.total_licenses = [:totalLicenses] if [:totalLicenses] optional_fields.total_license_cost = [:totalLicenseCost] if [:totalLicenseCost] optional_fields.licenses_used = [:licensesUsed] if [:licensesUsed] optional_fields.license_poc = [:licensePoc] if [:licensePoc] optional_fields.license_renewal_date = [:licenseRenewalDate] if [:licenseRenewalDate] optional_fields.license_expiration_date = [:licenseExpirationDate] if [:licenseExpirationDate] optional_fields.approval_status = [:approvalStatus] if [:approvalStatus] optional_fields.release_date = [:releaseDate] if [:releaseDate] optional_fields.maintenance_date = [:maintenanceDate] if [:maintenanceDate] optional_fields.retirement_date = [:retirementDate] if [:retirementDate] optional_fields.end_of_life_support_date = [:endOfLifeSupportDate] if [:endOfLifeSupportDate] optional_fields.extended_end_of_life_support_date = [:extendedEndOfLifeSupportDate] if [:extendedEndOfLifeSupportDate] optional_fields.critical_asset = [:criticalAsset] if [:criticalAsset] optional_fields.location = [:location] if [:location] optional_fields.purpose = [:purpose] if [:purpose] # VA only. optional_fields. = [:unsupportedOperatingSystem] if [:unsupportedOperatingSystem] optional_fields.unapproved_software_from_trm = [:unapprovedSoftwareFromTrm] if [:unapprovedSoftwareFromTrm] optional_fields.approved_waiver = [:approvedWaiver] if [:approvedWaiver] # Build the body array body = {} body = body.merge(require_field) body = body.merge(conditional_fields) body = body.merge(optional_fields) body_array = Array.new(1, body) # Call the API result = EmassClient::SoftwareBaselineApi.new.add_sw_baseline_assets([:systemId], body_array) puts to_output_hash(result).green rescue EmassClient::ApiError => e puts 'Exception when calling SoftwareBaselineApi->add_sw_baseline_assets'.red puts to_output_hash(e) end |
#assets ⇒ Object
612 613 614 615 616 617 618 619 620 621 622 623 624 |
# File 'lib/emasser/get.rb', line 612 def assets = (@_initializer).keys = to_input_hash(, ) begin # Get software assets for given system result = EmassClient::SoftwareBaselineApi.new.get_system_sw_baseline([:systemId], ) puts to_output_hash(result).green rescue EmassClient::ApiError => e puts 'Exception when calling SoftwareBaselineApi->get_system_sw_baseline'.red puts to_output_hash(e) end end |
#remove ⇒ Object
182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/emasser/delete.rb', line 182 def remove body_array = [] [:softwareIds].each do |software| obj = {} obj[:softwareId] = software body_array << obj end result = EmassClient::SoftwareBaselineApi.new.delete_sw_baseline_assets([:systemId], body_array) puts to_output_hash(result).green rescue EmassClient::ApiError => e puts 'Exception when calling SoftwareBaselineApi->delete_sw_baseline_assets'.red puts to_output_hash(e) end |
#update ⇒ Object
rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 |
# File 'lib/emasser/put.rb', line 761 def update # Required fields require_field = EmassClient::SwBaselineRequiredFields.new require_field.software_vendor = [:softwareVendor] require_field.software_name = [:softwareName] require_field.version = [:version] read_only_field = EmassClient::SwBaselineReadOnlyFields.new read_only_field.software_id = [:softwareId] if [:softwareId] # Conditional fields conditional_fields = EmassClient::SwBaselineConditionalFields.new conditional_fields.approval_date = [:approvalDate] if [:approvalDate] # Optional fields optional_fields = EmassClient::SwBaselineOptionalFields.new optional_fields.software_type = [:softwareType] if [:softwareType] optional_fields.parent_system = [:parentSystem] if [:parentSystem] optional_fields.subsystem = [:subsystem] if [:subsystem] optional_fields.network = [:network] if [:network] optional_fields.hosting_environment = [:hostingEnvironment] if [:hostingEnvironment] optional_fields.software_dependencies = [:softwareDependencies] if [:softwareDependencies] optional_fields.cryptographic_hash = [:cryptographicHash] if [:cryptographicHash] optional_fields.in_service_data = [:inServiceData] if [:inServiceData] optional_fields.it_budget_uii = [:itBudgetUii] if [:itBudgetUii] optional_fields.fiscal_year = [:fiscalYear] if [:fiscalYear] optional_fields.pop_end_date = [:popEndDate] if [:popEndDate] optional_fields.license_or_contract = [:licenseOrContract] if [:licenseOrContract] optional_fields.license_term = [:licenseTerm] if [:licenseTerm] optional_fields.cost_per_license = [:costPerLicense] if [:costPerLicense] optional_fields.total_licenses = [:totalLicenses] if [:totalLicenses] optional_fields.total_license_cost = [:totalLicenseCost] if [:totalLicenseCost] optional_fields.licenses_used = [:licensesUsed] if [:licensesUsed] optional_fields.license_poc = [:licensePoc] if [:licensePoc] optional_fields.license_renewal_date = [:licenseRenewalDate] if [:licenseRenewalDate] optional_fields.license_expiration_date = [:licenseExpirationDate] if [:licenseExpirationDate] optional_fields.approval_status = [:approvalStatus] if [:approvalStatus] optional_fields.approval_date = [:approvalDate] if [:approvalDate] optional_fields.release_date = [:releaseDate] if [:releaseDate] optional_fields.maintenance_date = [:maintenanceDate] if [:maintenanceDate] optional_fields.retirement_date = [:retirementDate] if [:retirementDate] optional_fields.end_of_life_support_date = [:endOfLifeSupportDate] if [:endOfLifeSupportDate] optional_fields.extended_end_of_life_support_date = [:extendedEndOfLifeSupportDate] if [:extendedEndOfLifeSupportDate] optional_fields.critical_asset = [:criticalAsset] if [:criticalAsset] optional_fields.location = [:location] if [:location] optional_fields.purpose = [:purpose] if [:purpose] # VA only. optional_fields. = [:unsupportedOperatingSystem] if [:unsupportedOperatingSystem] optional_fields.unapproved_software_from_trm = [:unapprovedSoftwareFromTrm] if [:unapprovedSoftwareFromTrm] optional_fields.approved_waiver = [:approvedWaiver] if [:approvedWaiver] # Build the body array body = {} body = body.merge(require_field) body = body.merge(read_only_field) body = body.merge(conditional_fields) body = body.merge(optional_fields) body_array = Array.new(1, body) # Call the API result = EmassClient::SoftwareBaselineApi.new.update_sw_baseline_assets([:systemId], body_array) puts to_output_hash(result).green rescue EmassClient::ApiError => e puts 'Exception when calling SoftwareBaselineApi->update_sw_baseline_assets'.red puts to_output_hash(e) end |