Satellite/console: Reduce free account limits
Update free account limits to segments(10k), storage(25gb), and bandwidth(25gb) Issue: https://github.com/storj/storj-private/issues/182 Change-Id: I59250fc9f1eebc812bc85ecfbc2924f8c4369064
This commit is contained in:
parent
54b6e1614a
commit
63533c628b
@ -47,7 +47,7 @@ func TestProjectGet(t *testing.T) {
|
|||||||
t.Run("OK", func(t *testing.T) {
|
t.Run("OK", func(t *testing.T) {
|
||||||
link := "http://" + address.String() + "/api/projects/" + project.ID.String()
|
link := "http://" + address.String() + "/api/projects/" + project.ID.String()
|
||||||
expected := fmt.Sprintf(
|
expected := fmt.Sprintf(
|
||||||
`{"id":"%s","publicId":"%s","name":"%s","description":"%s","userAgent":null,"ownerId":"%s","rateLimit":null,"burstLimit":null,"maxBuckets":null,"createdAt":"%s","memberCount":0,"storageLimit":"25.00 GB","bandwidthLimit":"25.00 GB","userSpecifiedStorageLimit":null,"userSpecifiedBandwidthLimit":null,"segmentLimit":150000}`,
|
`{"id":"%s","publicId":"%s","name":"%s","description":"%s","userAgent":null,"ownerId":"%s","rateLimit":null,"burstLimit":null,"maxBuckets":null,"createdAt":"%s","memberCount":0,"storageLimit":"25.00 GB","bandwidthLimit":"25.00 GB","userSpecifiedStorageLimit":null,"userSpecifiedBandwidthLimit":null,"segmentLimit":10000}`,
|
||||||
project.ID.String(),
|
project.ID.String(),
|
||||||
project.PublicID.String(),
|
project.PublicID.String(),
|
||||||
project.Name,
|
project.Name,
|
||||||
@ -88,7 +88,7 @@ func TestProjectLimit(t *testing.T) {
|
|||||||
linkLimit := "http://" + address.String() + "/api/projects/" + project.ID.String() + "/limit"
|
linkLimit := "http://" + address.String() + "/api/projects/" + project.ID.String() + "/limit"
|
||||||
|
|
||||||
t.Run("Get OK", func(t *testing.T) {
|
t.Run("Get OK", func(t *testing.T) {
|
||||||
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"25.00 GB","bytes":25000000000},"bandwidth":{"amount":"25.00 GB","bytes":25000000000},"rate":{"rps":0},"maxBuckets":0,"maxSegments":150000}`, planet.Satellites[0].Config.Console.AuthToken)
|
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"25.00 GB","bytes":25000000000},"bandwidth":{"amount":"25.00 GB","bytes":25000000000},"rate":{"rps":0},"maxBuckets":0,"maxSegments":10000}`, planet.Satellites[0].Config.Console.AuthToken)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Get Not Found", func(t *testing.T) {
|
t.Run("Get Not Found", func(t *testing.T) {
|
||||||
@ -136,7 +136,7 @@ func TestProjectLimit(t *testing.T) {
|
|||||||
require.Equal(t, http.StatusOK, response.StatusCode)
|
require.Equal(t, http.StatusOK, response.StatusCode)
|
||||||
require.NoError(t, response.Body.Close())
|
require.NoError(t, response.Body.Close())
|
||||||
|
|
||||||
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.0 TiB","bytes":1099511627776},"bandwidth":{"amount":"25.00 GB","bytes":25000000000},"rate":{"rps":0},"maxBuckets":0,"maxSegments":150000}`, planet.Satellites[0].Config.Console.AuthToken)
|
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.0 TiB","bytes":1099511627776},"bandwidth":{"amount":"25.00 GB","bytes":25000000000},"rate":{"rps":0},"maxBuckets":0,"maxSegments":10000}`, planet.Satellites[0].Config.Console.AuthToken)
|
||||||
|
|
||||||
req, err = http.NewRequestWithContext(ctx, http.MethodPut, linkLimit+"?usage=1GB", nil)
|
req, err = http.NewRequestWithContext(ctx, http.MethodPut, linkLimit+"?usage=1GB", nil)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@ -147,7 +147,7 @@ func TestProjectLimit(t *testing.T) {
|
|||||||
require.Equal(t, http.StatusOK, response.StatusCode)
|
require.Equal(t, http.StatusOK, response.StatusCode)
|
||||||
require.NoError(t, response.Body.Close())
|
require.NoError(t, response.Body.Close())
|
||||||
|
|
||||||
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.00 GB","bytes":1000000000},"bandwidth":{"amount":"25.00 GB","bytes":25000000000},"rate":{"rps":0},"maxBuckets":0,"maxSegments":150000}`, planet.Satellites[0].Config.Console.AuthToken)
|
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.00 GB","bytes":1000000000},"bandwidth":{"amount":"25.00 GB","bytes":25000000000},"rate":{"rps":0},"maxBuckets":0,"maxSegments":10000}`, planet.Satellites[0].Config.Console.AuthToken)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Update Bandwidth", func(t *testing.T) {
|
t.Run("Update Bandwidth", func(t *testing.T) {
|
||||||
@ -160,7 +160,7 @@ func TestProjectLimit(t *testing.T) {
|
|||||||
require.Equal(t, http.StatusOK, response.StatusCode)
|
require.Equal(t, http.StatusOK, response.StatusCode)
|
||||||
require.NoError(t, response.Body.Close())
|
require.NoError(t, response.Body.Close())
|
||||||
|
|
||||||
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.00 GB","bytes":1000000000},"bandwidth":{"amount":"1.00 MB","bytes":1000000},"rate":{"rps":0},"maxBuckets":0,"maxSegments":150000}`, planet.Satellites[0].Config.Console.AuthToken)
|
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.00 GB","bytes":1000000000},"bandwidth":{"amount":"1.00 MB","bytes":1000000},"rate":{"rps":0},"maxBuckets":0,"maxSegments":10000}`, planet.Satellites[0].Config.Console.AuthToken)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Update Rate", func(t *testing.T) {
|
t.Run("Update Rate", func(t *testing.T) {
|
||||||
@ -173,7 +173,7 @@ func TestProjectLimit(t *testing.T) {
|
|||||||
require.Equal(t, http.StatusOK, response.StatusCode)
|
require.Equal(t, http.StatusOK, response.StatusCode)
|
||||||
require.NoError(t, response.Body.Close())
|
require.NoError(t, response.Body.Close())
|
||||||
|
|
||||||
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.00 GB","bytes":1000000000},"bandwidth":{"amount":"1.00 MB","bytes":1000000},"rate":{"rps":100},"maxBuckets":0,"maxSegments":150000}`, planet.Satellites[0].Config.Console.AuthToken)
|
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.00 GB","bytes":1000000000},"bandwidth":{"amount":"1.00 MB","bytes":1000000},"rate":{"rps":100},"maxBuckets":0,"maxSegments":10000}`, planet.Satellites[0].Config.Console.AuthToken)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Update Buckets", func(t *testing.T) {
|
t.Run("Update Buckets", func(t *testing.T) {
|
||||||
@ -186,7 +186,7 @@ func TestProjectLimit(t *testing.T) {
|
|||||||
require.Equal(t, http.StatusOK, response.StatusCode)
|
require.Equal(t, http.StatusOK, response.StatusCode)
|
||||||
require.NoError(t, response.Body.Close())
|
require.NoError(t, response.Body.Close())
|
||||||
|
|
||||||
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.00 GB","bytes":1000000000},"bandwidth":{"amount":"1.00 MB","bytes":1000000},"rate":{"rps":100},"maxBuckets":2000,"maxSegments":150000}`, planet.Satellites[0].Config.Console.AuthToken)
|
assertGet(ctx, t, linkLimit, `{"usage":{"amount":"1.00 GB","bytes":1000000000},"bandwidth":{"amount":"1.00 MB","bytes":1000000},"rate":{"rps":100},"maxBuckets":2000,"maxSegments":10000}`, planet.Satellites[0].Config.Console.AuthToken)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Update Segment Limit", func(t *testing.T) {
|
t.Run("Update Segment Limit", func(t *testing.T) {
|
||||||
|
@ -66,19 +66,19 @@ type UsageLimitsConfig struct {
|
|||||||
|
|
||||||
// StorageLimitConfig is a configuration struct for default storage per-project usage limits.
|
// StorageLimitConfig is a configuration struct for default storage per-project usage limits.
|
||||||
type StorageLimitConfig struct {
|
type StorageLimitConfig struct {
|
||||||
Free memory.Size `help:"the default free-tier storage usage limit" default:"150.00GB" testDefault:"25.00 GB"`
|
Free memory.Size `help:"the default free-tier storage usage limit" default:"25.00GB" testDefault:"25.00 GB"`
|
||||||
Paid memory.Size `help:"the default paid-tier storage usage limit" default:"25.00TB" testDefault:"25.00 GB"`
|
Paid memory.Size `help:"the default paid-tier storage usage limit" default:"25.00TB" testDefault:"25.00 GB"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// BandwidthLimitConfig is a configuration struct for default bandwidth per-project usage limits.
|
// BandwidthLimitConfig is a configuration struct for default bandwidth per-project usage limits.
|
||||||
type BandwidthLimitConfig struct {
|
type BandwidthLimitConfig struct {
|
||||||
Free memory.Size `help:"the default free-tier bandwidth usage limit" default:"150.00GB" testDefault:"25.00 GB"`
|
Free memory.Size `help:"the default free-tier bandwidth usage limit" default:"25.00GB" testDefault:"25.00 GB"`
|
||||||
Paid memory.Size `help:"the default paid-tier bandwidth usage limit" default:"100.00TB" testDefault:"25.00 GB"`
|
Paid memory.Size `help:"the default paid-tier bandwidth usage limit" default:"100.00TB" testDefault:"25.00 GB"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// SegmentLimitConfig is a configuration struct for default segments per-project usage limits.
|
// SegmentLimitConfig is a configuration struct for default segments per-project usage limits.
|
||||||
type SegmentLimitConfig struct {
|
type SegmentLimitConfig struct {
|
||||||
Free int64 `help:"the default free-tier segment usage limit" default:"150000"`
|
Free int64 `help:"the default free-tier segment usage limit" default:"10000"`
|
||||||
Paid int64 `help:"the default paid-tier segment usage limit" default:"100000000"`
|
Paid int64 `help:"the default paid-tier segment usage limit" default:"100000000"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
scripts/testdata/satellite-config.yaml.lock
vendored
6
scripts/testdata/satellite-config.yaml.lock
vendored
@ -329,7 +329,7 @@ compensation.withheld-percents: 75,75,75,50,50,50,25,25,25,0,0,0,0,0,0
|
|||||||
# console.terms-and-conditions-url: https://www.storj.io/terms-of-service/
|
# console.terms-and-conditions-url: https://www.storj.io/terms-of-service/
|
||||||
|
|
||||||
# the default free-tier bandwidth usage limit
|
# the default free-tier bandwidth usage limit
|
||||||
# console.usage-limits.bandwidth.free: 150.00 GB
|
# console.usage-limits.bandwidth.free: 25.00 GB
|
||||||
|
|
||||||
# the default paid-tier bandwidth usage limit
|
# the default paid-tier bandwidth usage limit
|
||||||
# console.usage-limits.bandwidth.paid: 100.00 TB
|
# console.usage-limits.bandwidth.paid: 100.00 TB
|
||||||
@ -341,13 +341,13 @@ compensation.withheld-percents: 75,75,75,50,50,50,25,25,25,0,0,0,0,0,0
|
|||||||
# console.usage-limits.project.paid: 3
|
# console.usage-limits.project.paid: 3
|
||||||
|
|
||||||
# the default free-tier segment usage limit
|
# the default free-tier segment usage limit
|
||||||
# console.usage-limits.segment.free: 150000
|
# console.usage-limits.segment.free: 10000
|
||||||
|
|
||||||
# the default paid-tier segment usage limit
|
# the default paid-tier segment usage limit
|
||||||
# console.usage-limits.segment.paid: 100000000
|
# console.usage-limits.segment.paid: 100000000
|
||||||
|
|
||||||
# the default free-tier storage usage limit
|
# the default free-tier storage usage limit
|
||||||
# console.usage-limits.storage.free: 150.00 GB
|
# console.usage-limits.storage.free: 25.00 GB
|
||||||
|
|
||||||
# the default paid-tier storage usage limit
|
# the default paid-tier storage usage limit
|
||||||
# console.usage-limits.storage.paid: 25.00 TB
|
# console.usage-limits.storage.paid: 25.00 TB
|
||||||
|
@ -44,26 +44,26 @@ const plans = ref<PricingPlanInfo[]>([
|
|||||||
new PricingPlanInfo(
|
new PricingPlanInfo(
|
||||||
PricingPlanType.PRO,
|
PricingPlanType.PRO,
|
||||||
'Pro Account',
|
'Pro Account',
|
||||||
'150 GB Free',
|
'25 GB Free',
|
||||||
'Only pay for what you need. $4/TB stored per month* $7/TB for bandwidth.',
|
'Only pay for what you need. $4/TB stored per month* $7/TB for bandwidth.',
|
||||||
'*Additional per-segment fee of $0.0000088 applies.',
|
'*Additional per-segment fee of $0.0000088 applies.',
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
'Add a credit card to activate your Pro Account.<br><br>Get 150GB free storage and bandwidth. Only pay for what you use beyond that.',
|
'Add a credit card to activate your Pro Account.<br><br>Get 25GB free storage and bandwidth. Only pay for what you use beyond that.',
|
||||||
'No charge today',
|
'No charge today',
|
||||||
'150GB Free',
|
'25GB Free',
|
||||||
),
|
),
|
||||||
new PricingPlanInfo(
|
new PricingPlanInfo(
|
||||||
PricingPlanType.FREE,
|
PricingPlanType.FREE,
|
||||||
'Free Account',
|
'Free Account',
|
||||||
'Limited',
|
'Limited',
|
||||||
'Free usage up to 150GB storage and 150GB bandwidth per month.',
|
'Free usage up to 25GB storage and 25GB bandwidth per month.',
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
'Start for free to try Storj and upgrade later.',
|
'Start for free to try Storj and upgrade later.',
|
||||||
null,
|
null,
|
||||||
'Limited 150',
|
'Limited 25',
|
||||||
),
|
),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
>
|
>
|
||||||
<div class="register-area__input-area__container__title-area" @click.stop="toggleDropdown">
|
<div class="register-area__input-area__container__title-area" @click.stop="toggleDropdown">
|
||||||
<div class="register-area__input-area__container__title-container">
|
<div class="register-area__input-area__container__title-container">
|
||||||
<h1 class="register-area__input-area__container__title-area__title">Get 150 GB Free</h1>
|
<h1 class="register-area__input-area__container__title-area__title">Get 25 GB Free</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="register-area__input-area__expand">
|
<div class="register-area__input-area__expand">
|
||||||
<div class="register-area__input-area__info-button">
|
<div class="register-area__input-area__info-button">
|
||||||
|
Loading…
Reference in New Issue
Block a user