ParseOrDie -> MustParse; stop returning pointer

This commit is contained in:
Daniel Smith 2015-01-06 17:20:01 -08:00
parent 35f54addca
commit 2050131b9a
6 changed files with 32 additions and 35 deletions

View File

@ -102,14 +102,14 @@ const (
DecimalSI = Format("DecimalSI") // e.g., 12M (12 * 10^6) DecimalSI = Format("DecimalSI") // e.g., 12M (12 * 10^6)
) )
// ParseOrDie turns the given string into a quantity or panics; for tests // MustParse turns the given string into a quantity or panics; for tests
// or others cases where you know the string is valid. // or others cases where you know the string is valid.
func ParseOrDie(str string) *Quantity { func MustParse(str string) Quantity {
q, err := ParseQuantity(str) q, err := ParseQuantity(str)
if err != nil { if err != nil {
panic(fmt.Errorf("cannot parse '%v': %v", str, err)) panic(fmt.Errorf("cannot parse '%v': %v", str, err))
} }
return q return *q
} }
const ( const (
@ -403,10 +403,7 @@ func (qf qFlag) String() string {
// QuantityFlag is a helper that makes a quantity flag (using standard flag package). // QuantityFlag is a helper that makes a quantity flag (using standard flag package).
// Will panic if defaultValue is not a valid quantity. // Will panic if defaultValue is not a valid quantity.
func QuantityFlag(flagName, defaultValue, description string) *Quantity { func QuantityFlag(flagName, defaultValue, description string) *Quantity {
q, err := ParseQuantity(defaultValue) q := MustParse(defaultValue)
if err != nil { flag.Var(qFlag{&q}, flagName, description)
panic(fmt.Errorf("can't use %v as a quantity: %v", defaultValue, err)) return &q
}
flag.Var(qFlag{q}, flagName, description)
return q
} }

View File

@ -38,17 +38,17 @@ func ExampleFormat() {
// cores = 5300m // cores = 5300m
} }
func ExampleParseOrDie() { func ExampleMustParse() {
memorySize := resource.ParseOrDie("5Gi") memorySize := resource.MustParse("5Gi")
fmt.Printf("memorySize = %v (%v)\n", memorySize.Value(), memorySize.Format) fmt.Printf("memorySize = %v (%v)\n", memorySize.Value(), memorySize.Format)
diskSize := resource.ParseOrDie("5G") diskSize := resource.MustParse("5G")
fmt.Printf("diskSize = %v (%v)\n", diskSize.Value(), diskSize.Format) fmt.Printf("diskSize = %v (%v)\n", diskSize.Value(), diskSize.Format)
cores := resource.ParseOrDie("5300m") cores := resource.MustParse("5300m")
fmt.Printf("milliCores = %v (%v)\n", cores.MilliValue(), cores.Format) fmt.Printf("milliCores = %v (%v)\n", cores.MilliValue(), cores.Format)
cores2 := resource.ParseOrDie("5.4") cores2 := resource.MustParse("5.4")
fmt.Printf("milliCores = %v (%v)\n", cores2.MilliValue(), cores2.Format) fmt.Printf("milliCores = %v (%v)\n", cores2.MilliValue(), cores2.Format)
// Output: // Output:

View File

@ -373,8 +373,8 @@ func TestValidateManifest(t *testing.T) {
Image: "image", Image: "image",
Command: []string{"foo", "bar"}, Command: []string{"foo", "bar"},
WorkingDir: "/tmp", WorkingDir: "/tmp",
Memory: *resource.Q("1"), Memory: resource.MustParse("1"),
CPU: *resource.Q("1"), CPU: resource.MustParse("1"),
Ports: []api.Port{ Ports: []api.Port{
{Name: "p1", ContainerPort: 80, HostPort: 8080}, {Name: "p1", ContainerPort: 80, HostPort: 8080},
{Name: "p2", ContainerPort: 81}, {Name: "p2", ContainerPort: 81},
@ -624,7 +624,7 @@ func TestValidatePodUpdate(t *testing.T) {
Containers: []api.Container{ Containers: []api.Container{
{ {
Image: "foo:V1", Image: "foo:V1",
CPU: *resource.Q("100m"), CPU: resource.MustParse("100m"),
}, },
}, },
}, },
@ -635,7 +635,7 @@ func TestValidatePodUpdate(t *testing.T) {
Containers: []api.Container{ Containers: []api.Container{
{ {
Image: "foo:V2", Image: "foo:V2",
CPU: *resource.Q("1000m"), CPU: resource.MustParse("1000m"),
}, },
}, },
}, },
@ -1301,8 +1301,8 @@ func TestValidateMinionUpdate(t *testing.T) {
}, },
Spec: api.NodeSpec{ Spec: api.NodeSpec{
Capacity: api.ResourceList{ Capacity: api.ResourceList{
api.ResourceCPU: *resource.Q("10000"), api.ResourceCPU: resource.MustParse("10000"),
api.ResourceMemory: *resource.Q("100"), api.ResourceMemory: resource.MustParse("100"),
}, },
}, },
}, api.Node{ }, api.Node{
@ -1311,8 +1311,8 @@ func TestValidateMinionUpdate(t *testing.T) {
}, },
Spec: api.NodeSpec{ Spec: api.NodeSpec{
Capacity: api.ResourceList{ Capacity: api.ResourceList{
api.ResourceCPU: *resource.Q("100"), api.ResourceCPU: resource.MustParse("100"),
api.ResourceMemory: *resource.Q("10000"), api.ResourceMemory: resource.MustParse("10000"),
}, },
}, },
}, true}, }, true},
@ -1323,8 +1323,8 @@ func TestValidateMinionUpdate(t *testing.T) {
}, },
Spec: api.NodeSpec{ Spec: api.NodeSpec{
Capacity: api.ResourceList{ Capacity: api.ResourceList{
api.ResourceCPU: *resource.Q("10000"), api.ResourceCPU: resource.MustParse("10000"),
api.ResourceMemory: *resource.Q("100"), api.ResourceMemory: resource.MustParse("100"),
}, },
}, },
}, api.Node{ }, api.Node{
@ -1334,8 +1334,8 @@ func TestValidateMinionUpdate(t *testing.T) {
}, },
Spec: api.NodeSpec{ Spec: api.NodeSpec{
Capacity: api.ResourceList{ Capacity: api.ResourceList{
api.ResourceCPU: *resource.Q("100"), api.ResourceCPU: resource.MustParse("100"),
api.ResourceMemory: *resource.Q("10000"), api.ResourceMemory: resource.MustParse("10000"),
}, },
}, },
}, true}, }, true},

View File

@ -734,8 +734,8 @@ func TestCreateMinion(t *testing.T) {
}, },
Spec: api.NodeSpec{ Spec: api.NodeSpec{
Capacity: api.ResourceList{ Capacity: api.ResourceList{
api.ResourceCPU: *resource.Q("1000m"), api.ResourceCPU: resource.MustParse("1000m"),
api.ResourceMemory: *resource.Q("1Mi"), api.ResourceMemory: resource.MustParse("1Mi"),
}, },
}, },
} }

View File

@ -170,10 +170,10 @@ func (os *OpenStack) Instances() (cloudprovider.Instances, bool) {
rsrc := api.NodeResources{ rsrc := api.NodeResources{
Capacity: api.ResourceList{ Capacity: api.ResourceList{
api.ResourceCPU: *resource.NewMilliQuantity(int64(flavor.VCPUs*1000), resource.DecimalSI), api.ResourceCPU: *resource.NewMilliQuantity(int64(flavor.VCPUs*1000), resource.DecimalSI),
api.ResourceMemory: *resource.Q(fmt.Sprintf("%dMi", flavor.RAM)), api.ResourceMemory: resource.MustParse(fmt.Sprintf("%dMi", flavor.RAM)),
"openstack.org/disk": *resource.Q(fmt.Sprintf("%dG", flavor.Disk)), "openstack.org/disk": resource.MustParse(fmt.Sprintf("%dG", flavor.Disk)),
"openstack.org/rxTxFactor": *resource.NewQuantity(int64(flavor.RxTxFactor*1000), resource.DecimalSI), "openstack.org/rxTxFactor": *resource.NewQuantity(int64(flavor.RxTxFactor*1000), resource.DecimalSI),
"openstack.org/swap": *resource.Q(fmt.Sprintf("%dMiB", flavor.Swap)), "openstack.org/swap": resource.MustParse(fmt.Sprintf("%dMi", flavor.Swap)),
}, },
} }
flavor_to_resource[flavor.ID] = &rsrc flavor_to_resource[flavor.ID] = &rsrc

View File

@ -56,14 +56,14 @@ func TestLeastRequested(t *testing.T) {
} }
cpuOnly := api.PodSpec{ cpuOnly := api.PodSpec{
Containers: []api.Container{ Containers: []api.Container{
{CPU: *resource.Q("1000m")}, {CPU: resource.MustParse("1000m")},
{CPU: *resource.Q("2000m")}, {CPU: resource.MustParse("2000m")},
}, },
} }
cpuAndMemory := api.PodSpec{ cpuAndMemory := api.PodSpec{
Containers: []api.Container{ Containers: []api.Container{
{CPU: *resource.Q("1000m"), Memory: *resource.Q("2000")}, {CPU: resource.MustParse("1000m"), Memory: resource.MustParse("2000")},
{CPU: *resource.Q("2000m"), Memory: *resource.Q("3000")}, {CPU: resource.MustParse("2000m"), Memory: resource.MustParse("3000")},
}, },
} }
tests := []struct { tests := []struct {