Class: Emasser::Hardware
- Inherits:
-
SubCommandBase
- Object
- Thor
- SubCommandBase
- Emasser::Hardware
- Defined in:
- lib/emasser/get.rb,
lib/emasser/put.rb,
lib/emasser/post.rb,
lib/emasser/delete.rb
Overview
Remove one or many hardware assets in a system
Endpoint:
/api/systems/{systemId}/hw-baseline
Class Method Summary collapse
Instance Method Summary collapse
-
#add ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity.
- #assets ⇒ Object
- #remove ⇒ Object
-
#update ⇒ Object
rubocop:disable 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
565 566 567 |
# File 'lib/emasser/get.rb', line 565 def self.exit_on_failure? true end |
Instance Method Details
#add ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 |
# File 'lib/emasser/post.rb', line 610 def add # Required fields require_field = EmassClient::HwBaselineRequiredFields.new require_field.asset_name = [:assetName] # Conditional fields conditional_fields = EmassClient::HwBaselineConditionalFields.new conditional_fields.public_facing_fqdn = [:publicFacingFqdn] if [:publicFacingFqdn] conditional_fields.public_facing_ip_address = [:publicFacingIpAddress] if [:publicFacingIpAddress] conditional_fields.public_facing_urls = [:publicFacingUrls] if [:publicFacingUrls] # Optional fields optional_fields = EmassClient::HwBaselineOptionalFields.new optional_fields.component_type = [:componentType] if [:componentType] optional_fields.nickname = [:nickname] if [:nickname] optional_fields.asset_ip_address = [:assetIpAddress] if [:assetIpAddress] optional_fields.public_facing = [:publicFacing] if [:publicFacing] optional_fields.virtual_asset = [:virtualAsset] if [:virtualAsset] optional_fields.manufacturer = [:manufacturer] if [:manufacturer] optional_fields.model_number = [:modelNumber] if [:modelNumber] optional_fields.serial_number = [:serialNumber] if [:serialNumber] optional_fields.os_ios_fw_version = [:OsIosFwVersion] if [:OsIosFwVersion] optional_fields.memory_size_type = [:memorySizeType] if [:memorySizeType] optional_fields.location = [:location] if [:location] optional_fields.approval_status = [:approvalStatus] if [:approvalStatus] optional_fields.critical_asset = [:criticalAsset] if [:criticalAsset] # 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::HardwareBaselineApi.new.add_hw_baseline_assets([:systemId], body_array) puts to_output_hash(result).green rescue EmassClient::ApiError => e puts 'Exception when calling HardwareBaselineApi->add_hw_baseline_assets'.red puts to_output_hash(e) end |
#assets ⇒ Object
578 579 580 581 582 583 584 585 586 587 588 589 590 |
# File 'lib/emasser/get.rb', line 578 def assets = (@_initializer).keys = to_input_hash(, ) begin # Get hardware assets form provided system result = EmassClient::HardwareBaselineApi.new.get_system_hw_baseline([:systemId], ) puts to_output_hash(result).green rescue EmassClient::ApiError => e puts 'Exception when calling HardwareBaselineApi->get_system_hw_baseline'.red puts to_output_hash(e) end end |
#remove ⇒ Object
151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/emasser/delete.rb', line 151 def remove body_array = [] [:hardwareIds].each do |hardware| obj = {} obj[:hardwareId] = hardware body_array << obj end result = EmassClient::HardwareBaselineApi.new.delete_hw_baseline_assets([:systemId], body_array) puts to_output_hash(result).green rescue EmassClient::ApiError => e puts 'Exception when calling HardwareBaselineApi->delete_hw_baseline_assets'.red puts to_output_hash(e) end |
#update ⇒ Object
rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 |
# File 'lib/emasser/put.rb', line 654 def update # Required fields require_field = EmassClient::HwBaselineRequiredFields.new require_field.asset_name = [:assetName] read_only_field = EmassClient::HwBaselineReadOnlyFields.new read_only_field.hardware_id = [:hardwareId] if [:hardwareId] # Conditional fields conditional_fields = EmassClient::HwBaselineConditionalFields.new conditional_fields.public_facing_fqdn = [:publicFacingFqdn] if [:publicFacingFqdn] conditional_fields.public_facing_ip_address = [:publicFacingIpAddress] if [:publicFacingIpAddress] conditional_fields.public_facing_urls = [:publicFacingUrls] if [:publicFacingUrls] # Optional fields optional_fields = EmassClient::HwBaselineOptionalFields.new optional_fields.component_type = [:componentType] if [:componentType] optional_fields.nickname = [:nickname] if [:nickname] optional_fields.asset_ip_address = [:assetIpAddress] if [:assetIpAddress] optional_fields.public_facing = [:publicFacing] if [:publicFacing] optional_fields.virtual_asset = [:virtualAsset] if [:virtualAsset] optional_fields.manufacturer = [:manufacturer] if [:manufacturer] optional_fields.model_number = [:modelNumber] if [:modelNumber] optional_fields.serial_number = [:serialNumber] if [:serialNumber] optional_fields.os_ios_fw_version = [:OsIosFwVersion] if [:OsIosFwVersion] optional_fields.memory_size_type = [:memorySizeType] if [:memorySizeType] optional_fields.location = [:location] if [:location] optional_fields.approval_status = [:approvalStatus] if [:approvalStatus] optional_fields.critical_asset = [:criticalAsset] if [:criticalAsset] # 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::HardwareBaselineApi.new.update_hw_baseline_assets([:systemId], body_array) puts to_output_hash(result).green rescue EmassClient::ApiError => e puts 'Exception when calling HardwareBaselineApi->update_hw_baseline_assets'.red puts to_output_hash(e) end |