Bug 1400588

Summary: [RFE] Hammer commands need means for extending help with additional information
Product: Red Hat Satellite Reporter: Tom McKay <tomckay>
Component: HammerAssignee: Tomas Strachota <tstrachota>
Status: CLOSED ERRATA QA Contact: jcallaha
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2.0CC: bbuckingham, bkearney, dhlavacd, jcallaha, tstrachota
Target Milestone: UnspecifiedKeywords: FutureFeature, Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rubygem-hammer_cli-0.5.1.12-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1405491 (view as bug list) Environment:
Last Closed: 2017-01-26 10:46:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1405491    

Description Tom McKay 2016-12-01 14:43:17 UTC
Describing command options isn't always enough. More complex commands like host create need to add further information about usage. Hammer should allow extending the default help page with additional sections and paragraphs.

Comment 1 Tom McKay 2016-12-01 14:43:24 UTC
Created from redmine issue http://projects.theforeman.org/issues/16408

Comment 2 Tom McKay 2016-12-01 14:43:31 UTC
Upstream bug assigned to tstrachota

Comment 5 Bryan Kearney 2016-12-01 15:14:41 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue http://projects.theforeman.org/issues/16408 has been resolved.

Comment 6 jcallaha 2017-01-09 20:51:52 UTC
Verified in Satellite 6.2.7 Snap 1

Example of expanded output in hammer command

-bash-4.2# hammer host create --help
Usage:
    hammer host create [OPTIONS]

Options:
 --architecture ARCHITECTURE_NAME                    Architecture name
 --architecture-id ARCHITECTURE_ID                    
 --ask-root-password ASK_ROOT_PW                     One of true/false, yes/no, 1/0.
 --autoheal AUTOHEAL                                 Sets whether the Host will autoheal subscriptions upon checkin
                                                     One of true/false, yes/no, 1/0.
 --build BUILD                                       One of true/false, yes/no, 1/0.
                                                     Default: "true"
 --comment COMMENT                                   Additional information about this host
 --compute-attributes COMPUTE_ATTRS                  Compute resource attributes.
                                                     Comma-separated list of key=value.
 --compute-profile COMPUTE_PROFILE_NAME              Name to search by
 --compute-profile-id COMPUTE_PROFILE_ID              
 --compute-resource COMPUTE_RESOURCE_NAME            Compute resource name
 --compute-resource-id COMPUTE_RESOURCE_ID            
 --content-view CONTENT_VIEW_NAME                    Name to search by
 --content-view-id CONTENT_VIEW_ID                   content view numeric identifier
 --domain DOMAIN_NAME                                Domain name
 --domain-id DOMAIN_ID                               Numerical ID or domain name
 --enabled ENABLED                                   One of true/false, yes/no, 1/0.
                                                     Default: "true"
 --environment ENVIRONMENT_NAME                      Environment name
 --environment-id ENVIRONMENT_ID                      
 --hostgroup HOSTGROUP_NAME                          Hostgroup name
 --hostgroup-id HOSTGROUP_ID                          
 --hostgroup-title HOSTGROUP_TITLE                   Hostgroup title
 --hypervisor-guest-uuids HYPERVISOR_GUEST_UUIDS     List of hypervisor guest uuids
                                                     Comma separated list of values.
 --image IMAGE_NAME                                  Name to search by
 --image-id IMAGE_ID                                  
 --interface INTERFACE                               Interface parameters.
                                                     Comma-separated list of key=value.
                                                     Can be specified multiple times.
 --ip IP                                             not required if using a subnet with DHCP Capsule
 --kickstart-repository-id KICKSTART_REPOSITORY_ID   Repository Id associated with the kickstart repo used for provisioning
 --lifecycle-environment LIFECYCLE_ENVIRONMENT_NAME  Name to search by
 --lifecycle-environment-id LIFECYCLE_ENVIRONMENT_ID ID of the environment
 --location LOCATION_NAME                            Location name
 --location-id LOCATION_ID                            
 --mac MAC                                           required for managed host that is bare metal, not required if it's a
                                                     virtual machine
 --managed MANAGED                                   One of true/false, yes/no, 1/0.
                                                     Default: "true"
 --medium MEDIUM_NAME                                Medium name
 --medium-id MEDIUM_ID                                
 --model MODEL_NAME                                  Model name
 --model-id MODEL_ID                                  
 --name NAME                                          
 --operatingsystem OPERATINGSYSTEM_TITLE             Operating system title
 --operatingsystem-id OPERATINGSYSTEM_ID              
 --organization ORGANIZATION_NAME                    Organization name
 --organization-id ORGANIZATION_ID                   organization ID
 --overwrite OVERWRITE                               One of true/false, yes/no, 1/0.
                                                     Default: "true"
 --owner OWNER_LOGIN                                 Login of the owner
 --owner-id OWNER_ID                                 ID of the owner
 --owner-type OWNER_TYPE                             Host's owner type
                                                     Possible value(s): 'User', 'Usergroup'
 --parameters PARAMS                                 Host parameters.
                                                     Comma-separated list of key=value.
 --partition-table PARTITION_TABLE_NAME              Partition table name
 --partition-table-id PARTITION_TABLE_ID              
 --progress-report-id PROGRESS_REPORT_ID             UUID to track orchestration tasks status, GET
                                                     /api/orchestration/:UUID/tasks
 --provision-method METHOD                           Possible value(s): 'build', 'image'
 --puppet-ca-proxy PUPPET_CA_PROXY_NAME               
 --puppet-ca-proxy-id PUPPET_CA_PROXY_ID              
 --puppet-class-ids PUPPET_CLASS_IDS                 Comma separated list of values.
 --puppet-classes PUPPET_CLASS_NAMES                 Comma separated list of values.
 --puppet-proxy PUPPET_PROXY_NAME                     
 --puppet-proxy-id PUPPET_PROXY_ID                    
 --realm REALM_NAME                                  Name to search by
 --realm-id REALM_ID                                 Numerical ID or realm name
 --release-version RELEASE_VERSION                   Release version for this Host to use (7Server, 7.1, etc)
 --root-pass ROOT_PASS                               required if host is managed and value is not inherited from host group or
                                                     default password in settings
 --root-password ROOT_PW                              
 --service-level SERVICE_LEVEL                       Service level to be used for autoheal.
 --subnet SUBNET_NAME                                Subnet name
 --subnet-id SUBNET_ID                                
 --volume VOLUME                                     Volume parameters
                                                     Comma-separated list of key=value.
                                                     Can be specified multiple times.
 -h, --help                                          print help

Available keys for --interface:
  mac
  ip
  type                Possible values: interface, bmc, bond, bridge
  name
  subnet_id
  domain_id
  identifier
  managed             true/false
  primary             true/false, each managed hosts needs to have one primary interface.
  provision           true/false
  virtual             true/false

  For virtual=true:
    tag                 VLAN tag, this attribute has precedence over the subnet VLAN ID. Only for virtual interfaces.
    attached_to         Identifier of the interface to which this interface belongs, e.g. eth1.

  For type=bond:
    mode                Possible values: balance-rr, active-backup, balance-xor, broadcast, 802.3ad, balance-tlb, balance-alb
    attached_devices    Identifiers of slave interfaces, e.g. [eth1,eth2]
    bond_options

  For type=bmc:
    provider            always IPMI
    username
    password

Provider specific options:
  EC2:
    --compute-attributes:
      flavor_id
      image_id
      availability_zone
      security_group_ids
      managed_ip

  GCE:
    --compute-attributes:
      machine_type
      image_id
      network
      external_ip

  Libvirt:
    --compute-attributes:
      cpus                Number of CPUs
      memory              String, amount of memory, value in bytes
      start               Boolean, whether to start the machine or not

    --interface:
      compute_type                      Possible values: bridge, network
      compute_network / compute_bridge  Name of interface according to type
      compute_model                     Possible values: virtio, rtl8139, ne2k_pci, pcnet, e1000

    --volume:
      pool_name           One of available storage pools
      capacity            String value, eg. 10G
      format_type         Possible values: raw, qcow2

  OpenStack:
    --compute-attributes:
      flavor_ref
      image_ref
      tenant_id
      security_groups
      network

  oVirt:
    flavor_id
    image_id

  VMWare:
    --compute-attributes:
      cpus                  Cpu count
      corespersocket        Number of cores per socket (applicable to hardware versions < 10 only)
      memory_mb             Integer number, amount of memory in MB
      cluster               Cluster id from VMware
      path                  Path to folder
      guest_id              Guest OS id form VMware
      scsi_controller_type  Id of the controller from VMware
      hardware_version      Hardware version id from VMware
      start                 Must be a 1 or 0, whether to start the machine or not

    --interface:
      compute_type        Type of the network adapter, for example one of:
                            VirtualVmxnet,
                            VirtualVmxnet2,
                            VirtualVmxnet3,
                            VirtualE1000,
                            VirtualE1000e,
                            VirtualPCNet32
                          See documentation center for your version of vSphere to find more details about available adapter types:
                            https://www.vmware.com/support/pubs/
      compute_network     Network id from VMware

    --volume:
      name
      datastore           Datastore id from VMware
      size_gb             Integer number, volume size in GB
      thin                true/false
      eager_zero          true/false

Comment 8 errata-xmlrpc 2017-01-26 10:46:42 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:0197