github.com/cloudfoundry-attic/cli-with-i18n@v6.32.1-0.20171002233121-7401370d3b85+incompatible/actor/pushaction/domain.go (about)

     1  package pushaction
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"code.cloudfoundry.org/cli/actor/v2action"
     7  	log "github.com/sirupsen/logrus"
     8  )
     9  
    10  // NoDomainsFoundError is returned when there are no private or shared domains
    11  // accessible to an organization.
    12  type NoDomainsFoundError struct {
    13  	OrganizationGUID string
    14  }
    15  
    16  func (e NoDomainsFoundError) Error() string {
    17  	return fmt.Sprintf("No private or shared domains found for organization (GUID: %s)", e.OrganizationGUID)
    18  }
    19  
    20  // DefaultDomain looks up the shared and then private domains and returns back
    21  // the first one in the list as the default.
    22  func (actor Actor) DefaultDomain(orgGUID string) (v2action.Domain, Warnings, error) {
    23  	log.Infoln("getting org domains for org GUID:", orgGUID)
    24  	domains, warnings, err := actor.V2Actor.GetOrganizationDomains(orgGUID)
    25  	if err != nil {
    26  		log.Errorln("searching for domains in org:", err)
    27  		return v2action.Domain{}, Warnings(warnings), err
    28  	}
    29  
    30  	if len(domains) == 0 {
    31  		log.Error("no domains found")
    32  		return v2action.Domain{}, Warnings(warnings), NoDomainsFoundError{OrganizationGUID: orgGUID}
    33  	}
    34  
    35  	log.Debugf("selecting first domain as default domain: %#v", domains)
    36  	return domains[0], Warnings(warnings), nil
    37  }