func (cmd *ListSpaceQuotas) Execute(c flags.FlagContext) error { cmd.ui.Say(T("Getting space quotas as {{.Username}}...", map[string]interface{}{"Username": terminal.EntityNameColor(cmd.config.Username())})) quotas, err := cmd.spaceQuotaRepo.FindByOrg(cmd.config.OrganizationFields().GUID) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say("") table := cmd.ui.Table([]string{ T("name"), T("total memory"), T("instance memory"), T("routes"), T("service instances"), T("paid plans"), T("app instances"), T("route ports"), }) var megabytes string for _, quota := range quotas { if quota.InstanceMemoryLimit == -1 { megabytes = T("unlimited") } else { megabytes = formatters.ByteSize(quota.InstanceMemoryLimit * formatters.MEGABYTE) } servicesLimit := strconv.Itoa(quota.ServicesLimit) if servicesLimit == "-1" { servicesLimit = T("unlimited") } table.Add( quota.Name, formatters.ByteSize(quota.MemoryLimit*formatters.MEGABYTE), megabytes, fmt.Sprintf("%d", quota.RoutesLimit), T(quota.FormattedServicesLimit()), formatters.Allowed(quota.NonBasicServicesAllowed), T(quota.FormattedAppInstanceLimit()), T(quota.FormattedRoutePortsLimit()), ) } err = table.Print() if err != nil { return err } return nil }
func (cmd *showQuota) Execute(c flags.FlagContext) error { quotaName := c.Args()[0] cmd.ui.Say(T("Getting quota {{.QuotaName}} info as {{.Username}}...", map[string]interface{}{"QuotaName": quotaName, "Username": cmd.config.Username()})) quota, err := cmd.quotaRepo.FindByName(quotaName) if err != nil { return err } cmd.ui.Ok() var megabytes string if quota.InstanceMemoryLimit == -1 { megabytes = T("unlimited") } else { megabytes = formatters.ByteSize(quota.InstanceMemoryLimit * formatters.MEGABYTE) } servicesLimit := strconv.Itoa(quota.ServicesLimit) if servicesLimit == "-1" { servicesLimit = T("unlimited") } appInstanceLimit := strconv.Itoa(quota.AppInstanceLimit) if quota.AppInstanceLimit == resources.UnlimitedAppInstances { appInstanceLimit = T("unlimited") } reservedRoutePorts := string(quota.ReservedRoutePorts) if reservedRoutePorts == resources.UnlimitedReservedRoutePorts { reservedRoutePorts = T("unlimited") } table := cmd.ui.Table([]string{"", ""}) table.Add(T("Total Memory"), formatters.ByteSize(quota.MemoryLimit*formatters.MEGABYTE)) table.Add(T("Instance Memory"), megabytes) table.Add(T("Routes"), fmt.Sprint(quota.RoutesLimit)) table.Add(T("Services"), servicesLimit) table.Add(T("Paid service plans"), formatters.Allowed(quota.NonBasicServicesAllowed)) table.Add(T("App instance limit"), appInstanceLimit) if reservedRoutePorts != "" { table.Add(T("Reserved Route Ports"), reservedRoutePorts) } err = table.Print() if err != nil { return err } return nil }
func (cmd *SpaceQuota) Execute(c flags.FlagContext) error { name := c.Args()[0] cmd.ui.Say(T("Getting space quota {{.Quota}} info as {{.Username}}...", map[string]interface{}{ "Quota": terminal.EntityNameColor(name), "Username": terminal.EntityNameColor(cmd.config.Username()), })) spaceQuota, err := cmd.spaceQuotaRepo.FindByName(name) if err != nil { return err } cmd.ui.Ok() cmd.ui.Say("") var megabytes string table := cmd.ui.Table([]string{"", ""}) table.Add(T("total memory limit"), formatters.ByteSize(spaceQuota.MemoryLimit*formatters.MEGABYTE)) if spaceQuota.InstanceMemoryLimit == -1 { megabytes = T("unlimited") } else { megabytes = formatters.ByteSize(spaceQuota.InstanceMemoryLimit * formatters.MEGABYTE) } table.Add(T("instance memory limit"), megabytes) table.Add(T("routes"), fmt.Sprintf("%d", spaceQuota.RoutesLimit)) table.Add(T("services"), T(spaceQuota.FormattedServicesLimit())) table.Add(T("non basic services"), formatters.Allowed(spaceQuota.NonBasicServicesAllowed)) table.Add(T("app instance limit"), T(spaceQuota.FormattedAppInstanceLimit())) table.Add(T("reserved route ports"), T(spaceQuota.FormattedRoutePortsLimit())) err = table.Print() if err != nil { return err } return nil }
func (cmd *ListQuotas) Execute(c flags.FlagContext) error { cmd.ui.Say(T("Getting quotas as {{.Username}}...", map[string]interface{}{"Username": terminal.EntityNameColor(cmd.config.Username())})) quotas, err := cmd.quotaRepo.FindAll() if err != nil { return err } cmd.ui.Ok() cmd.ui.Say("") table := cmd.ui.Table([]string{ T("name"), T("total memory"), T("instance memory"), T("routes"), T("service instances"), T("paid plans"), T("app instances"), T("route ports"), }) var megabytes string for _, quota := range quotas { if quota.InstanceMemoryLimit == -1 { megabytes = T("unlimited") } else { megabytes = formatters.ByteSize(quota.InstanceMemoryLimit * formatters.MEGABYTE) } servicesLimit := strconv.Itoa(quota.ServicesLimit) if quota.ServicesLimit == -1 { servicesLimit = T("unlimited") } appInstanceLimit := strconv.Itoa(quota.AppInstanceLimit) if quota.AppInstanceLimit == resources.UnlimitedAppInstances { appInstanceLimit = T("unlimited") } reservedRoutePorts := string(quota.ReservedRoutePorts) if reservedRoutePorts == resources.UnlimitedReservedRoutePorts { reservedRoutePorts = T("unlimited") } routesLimit := fmt.Sprintf("%d", quota.RoutesLimit) if routesLimit == resources.UnlimitedRoutes { routesLimit = T("unlimited") } table.Add( quota.Name, formatters.ByteSize(quota.MemoryLimit*formatters.MEGABYTE), megabytes, routesLimit, fmt.Sprint(servicesLimit), formatters.Allowed(quota.NonBasicServicesAllowed), fmt.Sprint(appInstanceLimit), fmt.Sprint(reservedRoutePorts), ) } err = table.Print() if err != nil { return err } return nil }
func (cmd *ShowOrg) Execute(c flags.FlagContext) error { org := cmd.orgReq.GetOrganization() if c.Bool("guid") { cmd.ui.Say(org.GUID) } else { cmd.ui.Say(T("Getting info for org {{.OrgName}} as {{.Username}}...", map[string]interface{}{ "OrgName": terminal.EntityNameColor(org.Name), "Username": terminal.EntityNameColor(cmd.config.Username())})) cmd.ui.Ok() cmd.ui.Say("") table := cmd.ui.Table([]string{terminal.EntityNameColor(org.Name) + ":", "", ""}) domains := []string{} for _, domain := range org.Domains { domains = append(domains, domain.Name) } spaces := []string{} for _, space := range org.Spaces { spaces = append(spaces, space.Name) } spaceQuotas := []string{} for _, spaceQuota := range org.SpaceQuotas { spaceQuotas = append(spaceQuotas, spaceQuota.Name) } quota := org.QuotaDefinition var reservedPortLimit string switch string(quota.ReservedRoutePorts) { case "": break case resources.UnlimitedReservedRoutePorts: reservedPortLimit = T("unlimited") default: if _, err := quota.ReservedRoutePorts.Int64(); err != nil { return err } reservedPortLimit = string(quota.ReservedRoutePorts) } appInstanceLimit := strconv.Itoa(quota.AppInstanceLimit) if quota.AppInstanceLimit == resources.UnlimitedAppInstances { appInstanceLimit = T("unlimited") } orgQuotaFields := []string{} orgQuotaFields = append(orgQuotaFields, T("{{.MemoryLimit}}M memory limit", map[string]interface{}{"MemoryLimit": quota.MemoryLimit})) orgQuotaFields = append(orgQuotaFields, T("{{.InstanceMemoryLimit}} instance memory limit", map[string]interface{}{"InstanceMemoryLimit": formatters.InstanceMemoryLimit(quota.InstanceMemoryLimit)})) orgQuotaFields = append(orgQuotaFields, T("{{.RoutesLimit}} routes", map[string]interface{}{"RoutesLimit": quota.RoutesLimit})) orgQuotaFields = append(orgQuotaFields, T("{{.ServicesLimit}} services", map[string]interface{}{"ServicesLimit": quota.ServicesLimit})) orgQuotaFields = append(orgQuotaFields, T("paid services {{.NonBasicServicesAllowed}}", map[string]interface{}{"NonBasicServicesAllowed": formatters.Allowed(quota.NonBasicServicesAllowed)})) orgQuotaFields = append(orgQuotaFields, T("{{.AppInstanceLimit}} app instance limit", map[string]interface{}{"AppInstanceLimit": appInstanceLimit})) if reservedPortLimit != "" { orgQuotaFields = append(orgQuotaFields, T("{{.ReservedRoutePorts}} route ports", map[string]interface{}{"ReservedRoutePorts": reservedPortLimit})) } orgQuota := fmt.Sprintf("%s (%s)", quota.Name, strings.Join(orgQuotaFields, ", ")) if cmd.pluginCall { cmd.populatePluginModel(org, quota) } else { table.Add("", T("domains:"), terminal.EntityNameColor(strings.Join(domains, ", "))) table.Add("", T("quota:"), terminal.EntityNameColor(orgQuota)) table.Add("", T("spaces:"), terminal.EntityNameColor(strings.Join(spaces, ", "))) table.Add("", T("space quotas:"), terminal.EntityNameColor(strings.Join(spaceQuotas, ", "))) err := table.Print() if err != nil { return err } } } return nil }
func (cmd *ShowSpace) quotaString(space models.Space) (string, error) { if space.SpaceQuotaGUID == "" { return "", nil } quota, err := cmd.quotaRepo.FindByGUID(space.SpaceQuotaGUID) if err != nil { return "", err } spaceQuotaFields := []string{} spaceQuotaFields = append(spaceQuotaFields, T("{{.MemoryLimit}} memory limit", map[string]interface{}{"MemoryLimit": quota.FormattedMemoryLimit()})) spaceQuotaFields = append(spaceQuotaFields, T("{{.InstanceMemoryLimit}} instance memory limit", map[string]interface{}{"InstanceMemoryLimit": quota.FormattedInstanceMemoryLimit()})) spaceQuotaFields = append(spaceQuotaFields, T("{{.RoutesLimit}} routes", map[string]interface{}{"RoutesLimit": quota.RoutesLimit})) spaceQuotaFields = append(spaceQuotaFields, T("{{.ServicesLimit}} services", map[string]interface{}{"ServicesLimit": quota.ServicesLimit})) spaceQuotaFields = append(spaceQuotaFields, T("paid services {{.NonBasicServicesAllowed}}", map[string]interface{}{"NonBasicServicesAllowed": formatters.Allowed(quota.NonBasicServicesAllowed)})) spaceQuotaFields = append(spaceQuotaFields, T("{{.AppInstanceLimit}} app instance limit", map[string]interface{}{"AppInstanceLimit": quota.FormattedAppInstanceLimit()})) routePorts := quota.FormattedRoutePortsLimit() if routePorts != "" { spaceQuotaFields = append(spaceQuotaFields, T("{{.ReservedRoutePorts}} route ports", map[string]interface{}{"ReservedRoutePorts": routePorts})) } spaceQuota := fmt.Sprintf("%s (%s)", quota.Name, strings.Join(spaceQuotaFields, ", ")) return spaceQuota, nil }