Compare commits

..

3 Commits

Author SHA1 Message Date
sunilyadav840
76abac36a0 Merge master 2021-08-17 19:38:19 +05:30
sunilyadav840
0b03202844 update snapshot and format code 2021-03-09 17:00:37 +05:30
sunilyadav840
f6f787817b fix lint issue of cosmosclient and splitter 2021-03-09 16:34:08 +05:30
7 changed files with 218 additions and 214 deletions

View File

@@ -8,9 +8,6 @@ src/Bindings/BindingHandlersRegisterer.ts
src/Bindings/ReactBindingHandler.ts
src/Common/Constants.ts
src/Common/CosmosClient.test.ts
src/Common/CosmosClient.ts
src/Common/DataAccessUtilityBase.test.ts
src/Common/DataAccessUtilityBase.ts
src/Common/EditableUtility.ts
src/Common/HashMap.test.ts
src/Common/Logger.test.ts
@@ -20,6 +17,7 @@ src/Common/MongoProxyClient.test.ts
src/Common/MongoUtility.ts
src/Common/NotificationsClientBase.ts
src/Common/QueriesClient.ts
src/Common/UrlUtility.ts
src/Common/Splitter.ts
src/Config.ts
src/Contracts/ActionContracts.ts
@@ -153,6 +151,7 @@ src/Juno/JunoClient.test.ts
src/Juno/JunoClient.ts
src/Platform/Hosted/Authorization.ts
src/ReactDevTools.ts
src/Shared/Constants.ts
src/Shared/DefaultExperienceUtility.test.ts
src/Shared/DefaultExperienceUtility.ts
src/Shared/appInsights.ts

View File

@@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import * as Cosmos from "@azure/cosmos";
import { RequestInfo, setAuthorizationTokenHeaderUsingMasterKey } from "@azure/cosmos";
import { configContext, Platform } from "../ConfigContext";
@@ -80,7 +81,9 @@ export async function getTokenFromAuthService(verb: string, resourceType: string
let _client: Cosmos.CosmosClient;
export function client(): Cosmos.CosmosClient {
if (_client) return _client;
if (_client) {
return _client;
}
const options: Cosmos.CosmosClientOptions = {
endpoint: endpoint() || "https://cosmos.azure.com", // CosmosClient gets upset if we pass a bad URL. This should never actually get called
key: userContext.masterKey,

View File

@@ -36,7 +36,10 @@ export class Splitter {
}
public initialize() {
if (document.getElementById(this.splitterId) !== null && document.getElementById(this.leftSideId) != null) {
if (
document.getElementById(this.splitterId) !== undefined &&
document.getElementById(this.leftSideId) !== undefined
) {
this.splitter = <HTMLElement>document.getElementById(this.splitterId);
this.leftSide = <HTMLElement>document.getElementById(this.leftSideId);
}

208
src/Shared/Constants.ts Normal file
View File

@@ -0,0 +1,208 @@
import { SubscriptionType } from "../Contracts/SubscriptionType";
export const hoursInAMonth = 730;
export class AutoscalePricing {
public static MonthlyPricing = {
default: {
singleMaster: {
Currency: "USD",
CurrencySign: "$",
Standard: {
StartingPrice: 24,
PricePerRU: 0.09,
PricePerGB: 0.25,
},
},
multiMaster: {
Currency: "USD",
CurrencySign: "$",
Standard: {
StartingPrice: 24,
PricePerRU: 0.12,
PricePerGB: 0.25,
},
},
},
mooncake: {
singleMaster: {
Currency: "RMB",
CurrencySign: "¥",
Standard: {
StartingPrice: 152,
PricePerRU: 0.57,
PricePerGB: 2.576,
},
},
multiMaster: {
Currency: "RMB",
CurrencySign: "¥",
Standard: {
StartingPrice: 152,
PricePerRU: 0.76,
PricePerGB: 2.576,
},
},
},
};
public static HourlyPricing = {
default: {
singleMaster: {
Currency: "USD",
CurrencySign: "$",
Standard: {
StartingPrice: 24 / hoursInAMonth,
PricePerRU: 0.00012,
PricePerGB: 0.25 / hoursInAMonth,
},
},
multiMaster: {
Currency: "USD",
CurrencySign: "$",
Standard: {
StartingPrice: 24 / hoursInAMonth,
PricePerRU: 0.00016,
PricePerGB: 0.25 / hoursInAMonth,
},
},
},
mooncake: {
singleMaster: {
Currency: "RMB",
CurrencySign: "¥",
Standard: {
StartingPrice: AutoscalePricing.MonthlyPricing.mooncake.singleMaster.Standard.StartingPrice / hoursInAMonth, // per hour
PricePerRU: 0.000765,
PricePerGB: AutoscalePricing.MonthlyPricing.mooncake.singleMaster.Standard.PricePerGB / hoursInAMonth,
},
},
multiMaster: {
Currency: "RMB",
CurrencySign: "¥",
Standard: {
StartingPrice: AutoscalePricing.MonthlyPricing.mooncake.multiMaster.Standard.StartingPrice / hoursInAMonth, // per hour
PricePerRU: 0.00102,
PricePerGB: AutoscalePricing.MonthlyPricing.mooncake.multiMaster.Standard.PricePerGB / hoursInAMonth,
},
},
},
};
}
export class OfferPricing {
public static MonthlyPricing = {
default: {
Currency: "USD",
CurrencySign: "$",
S1Price: 25,
S2Price: 50,
S3Price: 100,
Standard: {
StartingPrice: 24,
PricePerRU: 0.06,
PricePerGB: 0.25,
},
},
mooncake: {
Currency: "RMB",
CurrencySign: "¥",
S1Price: 110.3,
S2Price: 220.6,
S3Price: 441.2,
Standard: {
StartingPrice: 152,
PricePerRU: 0.3794,
PricePerGB: 2.576,
},
},
};
public static HourlyPricing = {
default: {
Currency: "USD",
CurrencySign: "$",
S1Price: 0.0336,
S2Price: 0.0672,
S3Price: 0.1344,
Standard: {
StartingPrice: 24 / hoursInAMonth, // per hour
PricePerRU: 0.00008,
PricePerGB: 0.25 / hoursInAMonth,
},
},
mooncake: {
Currency: "RMB",
CurrencySign: "¥",
S1Price: 0.15,
S2Price: 0.3,
S3Price: 0.6,
Standard: {
StartingPrice: OfferPricing.MonthlyPricing.mooncake.Standard.StartingPrice / hoursInAMonth, // per hour
PricePerRU: 0.00051,
PricePerGB: OfferPricing.MonthlyPricing.mooncake.Standard.PricePerGB / hoursInAMonth,
},
},
};
}
export class CollectionCreation {
// TODO generate these values based on Product\Services\Documents\ImageStore\GatewayApplication\Settings.xml
public static readonly MinRUPerPartitionBelow7Partitions: number = 400;
public static readonly MinRU7PartitionsTo25Partitions: number = 2500;
public static readonly MinRUPerPartitionAbove25Partitions: number = 100;
public static readonly MaxRUPerPartition: number = 10000;
public static readonly MinPartitionedCollectionRUs: number = 2500;
public static readonly NumberOfPartitionsInFixedCollection: number = 1;
public static readonly NumberOfPartitionsInUnlimitedCollection: number = 10;
public static storage10Gb: string = "10";
public static storage100Gb: string = "100";
public static readonly DefaultCollectionRUs1000: number = 1000;
public static readonly DefaultCollectionRUs10K: number = 10000;
public static readonly DefaultCollectionRUs400: number = 400;
public static readonly DefaultCollectionRUs2000: number = 2000;
public static readonly DefaultCollectionRUs2500: number = 2500;
public static readonly DefaultCollectionRUs5000: number = 5000;
public static readonly DefaultCollectionRUs15000: number = 15000;
public static readonly DefaultCollectionRUs20000: number = 20000;
public static readonly DefaultCollectionRUs25000: number = 25000;
public static readonly DefaultCollectionRUs100K: number = 100000;
public static readonly DefaultCollectionRUs1Million: number = 1000000;
public static readonly DefaultAddCollectionDefaultFlight: string = "0";
public static readonly DefaultSubscriptionType: SubscriptionType = SubscriptionType.Free;
public static readonly TablesAPIDefaultDatabase: string = "TablesDB";
}
export const CollectionCreationDefaults = {
storage: CollectionCreation.storage100Gb,
throughput: {
fixed: CollectionCreation.DefaultCollectionRUs400,
unlimited: CollectionCreation.DefaultCollectionRUs400,
unlimitedmax: CollectionCreation.DefaultCollectionRUs1Million,
unlimitedmin: CollectionCreation.DefaultCollectionRUs400,
shared: CollectionCreation.DefaultCollectionRUs400,
},
} as const;
export class SubscriptionUtilMappings {
public static FreeTierSubscriptionIds: string[] = [
"b8f2ff04-0a81-4cf9-95ef-5828d16981d2",
"39b1fdff-e5b2-4f83-adb4-33cb3aabf5ea",
"41f6d14d-ece1-46e4-942c-02c00d67f7d6",
"11dc62e3-77dc-4ef5-a46b-480ec6caa8fe",
"199d0919-60bd-448e-b64d-8461a0fe9747",
"a57b6849-d443-44cf-a3b7-7dd07ead9401",
];
}
export class AutopilotDocumentation {
public static Url: string = "https://aka.ms/cosmos-autoscale-info";
}
export class FreeTierLimits {
public static RU: number = 1000;
public static Storage: number = 25;
}

View File

@@ -1,87 +0,0 @@
import { hoursInAMonth } from "./";
export const MonthlyPricing = {
default: {
singleMaster: {
Currency: "USD",
CurrencySign: "$",
Standard: {
StartingPrice: 24,
PricePerRU: 0.09,
PricePerGB: 0.25,
},
},
multiMaster: {
Currency: "USD",
CurrencySign: "$",
Standard: {
StartingPrice: 24,
PricePerRU: 0.12,
PricePerGB: 0.25,
},
},
},
mooncake: {
singleMaster: {
Currency: "RMB",
CurrencySign: "¥",
Standard: {
StartingPrice: 152,
PricePerRU: 0.57,
PricePerGB: 2.576,
},
},
multiMaster: {
Currency: "RMB",
CurrencySign: "¥",
Standard: {
StartingPrice: 152,
PricePerRU: 0.76,
PricePerGB: 2.576,
},
},
},
};
export const HourlyPricing = {
default: {
singleMaster: {
Currency: "USD",
CurrencySign: "$",
Standard: {
StartingPrice: 24 / hoursInAMonth,
PricePerRU: 0.00012,
PricePerGB: 0.25 / hoursInAMonth,
},
},
multiMaster: {
Currency: "USD",
CurrencySign: "$",
Standard: {
StartingPrice: 24 / hoursInAMonth,
PricePerRU: 0.00016,
PricePerGB: 0.25 / hoursInAMonth,
},
},
},
mooncake: {
singleMaster: {
Currency: "RMB",
CurrencySign: "¥",
Standard: {
StartingPrice: MonthlyPricing.mooncake.singleMaster.Standard.StartingPrice / hoursInAMonth, // per hour
PricePerRU: 0.000765,
PricePerGB: MonthlyPricing.mooncake.singleMaster.Standard.PricePerGB / hoursInAMonth,
},
},
multiMaster: {
Currency: "RMB",
CurrencySign: "¥",
Standard: {
StartingPrice: MonthlyPricing.mooncake.multiMaster.Standard.StartingPrice / hoursInAMonth, // per hour
PricePerRU: 0.00102,
PricePerGB: MonthlyPricing.mooncake.multiMaster.Standard.PricePerGB / hoursInAMonth,
},
},
},
};

View File

@@ -1,53 +0,0 @@
import { hoursInAMonth } from "./";
export const MonthlyPricing = {
default: {
Currency: "USD",
CurrencySign: "$",
S1Price: 25,
S2Price: 50,
S3Price: 100,
Standard: {
StartingPrice: 24,
PricePerRU: 0.06,
PricePerGB: 0.25,
},
},
mooncake: {
Currency: "RMB",
CurrencySign: "¥",
S1Price: 110.3,
S2Price: 220.6,
S3Price: 441.2,
Standard: {
StartingPrice: 152,
PricePerRU: 0.3794,
PricePerGB: 2.576,
},
},
};
export const HourlyPricing = {
default: {
Currency: "USD",
CurrencySign: "$",
S1Price: 0.0336,
S2Price: 0.0672,
S3Price: 0.1344,
Standard: {
StartingPrice: 24 / hoursInAMonth, // per hour
PricePerRU: 0.00008,
PricePerGB: 0.25 / hoursInAMonth,
},
},
mooncake: {
Currency: "RMB",
CurrencySign: "¥",
S1Price: 0.15,
S2Price: 0.3,
S3Price: 0.6,
Standard: {
StartingPrice: MonthlyPricing.mooncake.Standard.StartingPrice / hoursInAMonth, // per hour
PricePerRU: 0.00051,
PricePerGB: MonthlyPricing.mooncake.Standard.PricePerGB / hoursInAMonth,
},
},
};

View File

@@ -1,69 +0,0 @@
import { SubscriptionType } from "../../Contracts/SubscriptionType";
import * as AutoscalePricing from "./AutoscalePricing";
import * as OfferPricing from "./OfferPricing";
export const hoursInAMonth = 730;
export { AutoscalePricing, OfferPricing };
export const CollectionCreation = {
// TODO generate these values based on Product\Services\Documents\ImageStore\GatewayApplication\Settings.xml
MinRUPerPartitionBelow7Partitions: 400,
MinRU7PartitionsTo25Partitions: 2500,
MinRUPerPartitionAbove25Partitions: 100,
MaxRUPerPartition: 10000,
MinPartitionedCollectionRUs: 2500,
NumberOfPartitionsInFixedCollection: 1,
NumberOfPartitionsInUnlimitedCollection: 10,
storage10Gb: "10",
storage100Gb: "100",
DefaultCollectionRUs1000: 1000,
DefaultCollectionRUs10K: 10000,
DefaultCollectionRUs400: 400,
DefaultCollectionRUs2000: 2000,
DefaultCollectionRUs2500: 2500,
DefaultCollectionRUs5000: 5000,
DefaultCollectionRUs15000: 15000,
DefaultCollectionRUs20000: 20000,
DefaultCollectionRUs25000: 25000,
DefaultCollectionRUs100K: 100000,
DefaultCollectionRUs1Million: 1000000,
DefaultAddCollectionDefaultFlight: "0",
DefaultSubscriptionType: SubscriptionType.Free,
TablesAPIDefaultDatabase: "TablesDB",
};
export const CollectionCreationDefaults = {
storage: CollectionCreation.storage100Gb,
throughput: {
fixed: CollectionCreation.DefaultCollectionRUs400,
unlimited: CollectionCreation.DefaultCollectionRUs400,
unlimitedmax: CollectionCreation.DefaultCollectionRUs1Million,
unlimitedmin: CollectionCreation.DefaultCollectionRUs400,
shared: CollectionCreation.DefaultCollectionRUs400,
},
};
export const SubscriptionUtilMappings = {
FreeTierSubscriptionIds: [
"b8f2ff04-0a81-4cf9-95ef-5828d16981d2",
"39b1fdff-e5b2-4f83-adb4-33cb3aabf5ea",
"41f6d14d-ece1-46e4-942c-02c00d67f7d6",
"11dc62e3-77dc-4ef5-a46b-480ec6caa8fe",
"199d0919-60bd-448e-b64d-8461a0fe9747",
"a57b6849-d443-44cf-a3b7-7dd07ead9401",
],
};
export const AutopilotDocumentation = {
Url: "https://aka.ms/cosmos-autoscale-info",
};
export const FreeTierLimits = {
RU: 1000,
Storage: 25,
};