Lesson 35 - Get Compute Auth Token Working
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Base/ScenarioWithGameServer.h"
|
||||
#include "GameLiftCoreConstants.h"
|
||||
#include "ScenarioWithParameters.h"
|
||||
#include "GameLiftCore/Private/AwsScenarios/IAwsScenario.h"
|
||||
#include "GameLiftCore/Public/IAWSAccountInstance.h"
|
||||
#include "aws/gamelift/core/errors.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class ScenarioWithContainerParameters : public ScenarioWithParameters
|
||||
{
|
||||
public:
|
||||
virtual const char* const* GetParamNames() const override
|
||||
{
|
||||
static const char* paramNames[] =
|
||||
{
|
||||
"AccountId",
|
||||
"ApiGatewayStageNameParameter",
|
||||
"ContainerGroupDefinitionNameParameter",
|
||||
"ContainerImageNameParameter",
|
||||
"ContainerImageUriParameter",
|
||||
"GameNameParameter",
|
||||
"LambdaZipS3BucketParameter",
|
||||
"LambdaZipS3KeyParameter",
|
||||
"LaunchPathParameter",
|
||||
"FleetUdpFromPortParameter",
|
||||
"FleetUdpToPortParameter",
|
||||
"TotalVcpuLimitParameter",
|
||||
"TotalMemoryLimitParameter",
|
||||
"UnrealEngineVersionParameter",
|
||||
"EnableMetricsParameter"
|
||||
};
|
||||
return paramNames;
|
||||
}
|
||||
|
||||
virtual int SaveFeatureInstanceTemplate(IAWSAccountInstance* AwsAccountInstance,
|
||||
const TMap<FString, FString>& InParams) override
|
||||
{
|
||||
ContainerInstanceTemplateParams TemplateParams;
|
||||
TemplateParams.FromMap(InParams);
|
||||
|
||||
const char* ParamValues[] =
|
||||
{
|
||||
TemplateParams.AccountId.c_str(),
|
||||
TemplateParams.ApiGatewayStageNameParameter.c_str(),
|
||||
TemplateParams.ContainerGroupDefinitionNameParameter.c_str(),
|
||||
TemplateParams.ContainerImageNameParameter.c_str(),
|
||||
TemplateParams.ContainerImageUriParameter.c_str(),
|
||||
TemplateParams.GameNameParameter.c_str(),
|
||||
TemplateParams.LambdaZipS3BucketParameter.c_str(),
|
||||
TemplateParams.LambdaZipS3KeyParameter.c_str(),
|
||||
TemplateParams.LaunchPathParameter.c_str(),
|
||||
TemplateParams.FleetUdpFromPortParameter.c_str(),
|
||||
TemplateParams.FleetUdpToPortParameter.c_str(),
|
||||
TemplateParams.TotalVcpuLimitParameter.c_str(),
|
||||
TemplateParams.TotalMemoryLimitParameter.c_str(),
|
||||
TemplateParams.UnrealEngineVersionParameter.c_str(),
|
||||
TemplateParams.EnableMetricsParameter.c_str()
|
||||
};
|
||||
|
||||
auto* ParamNames = GetParamNames();
|
||||
size_t Size = sizeof(ParamValues) / sizeof(*ParamValues);
|
||||
|
||||
return GameLiftAccountSaveFeatureInstanceTemplates(AwsAccountInstance->GetInstance(), ParamNames, ParamValues, Size);
|
||||
}
|
||||
|
||||
virtual int UploadGameServer(IAWSAccountInstance* AwsAccountInstance, const std::string& ServerFolderPath, const std::string& ExtraServerResourcesPath) override
|
||||
{
|
||||
return GameLift::GAMELIFT_SUCCESS;
|
||||
};
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,71 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ScenarioWithParameters.h"
|
||||
|
||||
#include <regex>
|
||||
|
||||
#include "aws/gamelift/core/exports.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class ScenarioWithGameServer : public ScenarioWithParameters
|
||||
{
|
||||
public:
|
||||
virtual int UploadGameServer(
|
||||
IAWSAccountInstance* AwsAccountInstance,
|
||||
const std::string& ServerFolderPath,
|
||||
const std::string& ExtraServerResourcesPath
|
||||
) override
|
||||
{
|
||||
auto Callback = [](DISPATCH_RECEIVER_HANDLE DispatchReceiver, const char* CharPtr)
|
||||
{
|
||||
static_cast<ScenarioWithGameServer*>(DispatchReceiver)->SetBuildS3Path(CharPtr);
|
||||
};
|
||||
|
||||
return GameLiftAccountUploadGameServerEx(AwsAccountInstance->GetInstance(), ServerFolderPath.c_str(), ExtraServerResourcesPath.c_str(), this, Callback);
|
||||
}
|
||||
|
||||
int CreateLaunchPathParameter(
|
||||
const FString& InBuildOperatingSystem,
|
||||
const FString& InBuildFolderPath,
|
||||
const FString& InBuildFilePath,
|
||||
std::string& InStdLaunchPathParameter
|
||||
)
|
||||
{
|
||||
FString RelativePath = InBuildFilePath;
|
||||
|
||||
if (!FPaths::IsUnderDirectory(InBuildFilePath, InBuildFolderPath) || !FPaths::MakePathRelativeTo(RelativePath, *InBuildFolderPath))
|
||||
{
|
||||
UE_LOG(GameLiftCoreLog, Error, TEXT("%s."), Deploy::Logs::kInvalidServerFilePath);
|
||||
return GameLift::GAMELIFT_ERROR_GENERAL;
|
||||
}
|
||||
|
||||
auto StdServerFileRelPath = Convertors::FSToStdS(RelativePath);
|
||||
auto StdServerFileRelPathPosition = StdServerFileRelPath.find("/");
|
||||
|
||||
if (StdServerFileRelPathPosition == std::string::npos)
|
||||
{
|
||||
UE_LOG(GameLiftCoreLog, Error, TEXT("%s."), Deploy::Logs::kInvalidServerFilePath);
|
||||
return GameLift::GAMELIFT_ERROR_GENERAL;
|
||||
}
|
||||
|
||||
if (InBuildOperatingSystem.StartsWith(TEXT("WINDOWS")))
|
||||
{
|
||||
// Windows
|
||||
InStdLaunchPathParameter = "C:/game/" + StdServerFileRelPath.substr(StdServerFileRelPathPosition + 1);
|
||||
// Convert forward slashes to back slashes ( / -> \ )
|
||||
InStdLaunchPathParameter = std::regex_replace(InStdLaunchPathParameter, std::regex("/"), "\\\\");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Linux
|
||||
InStdLaunchPathParameter = "/local/game/" + StdServerFileRelPath.substr(StdServerFileRelPathPosition + 1);
|
||||
}
|
||||
|
||||
return GameLift::GAMELIFT_SUCCESS;
|
||||
}
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,80 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "AwsScenarios/IAWSScenario.h"
|
||||
|
||||
#include "aws/gamelift/core/exports.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class ScenarioWithParameters : public IAWSScenario
|
||||
{
|
||||
public:
|
||||
virtual ~ScenarioWithParameters() = default;
|
||||
|
||||
virtual const char* const* GetParamNames() const override
|
||||
{
|
||||
static const char* paramNames[] =
|
||||
{
|
||||
"GameNameParameter",
|
||||
"BuildOperatingSystemParameter",
|
||||
"BuildS3BucketParameter",
|
||||
"LambdaZipS3BucketParameter",
|
||||
"LambdaZipS3KeyParameter",
|
||||
"ApiGatewayStageNameParameter",
|
||||
"AccountId",
|
||||
"LaunchPathParameter",
|
||||
"BuildS3KeyParameter",
|
||||
"UnrealEngineVersionParameter",
|
||||
"EnableMetricsParameter"
|
||||
};
|
||||
return paramNames;
|
||||
}
|
||||
|
||||
virtual int SaveFeatureInstanceTemplate(IAWSAccountInstance* AwsAccountInstance, const TMap<FString, FString>& InParams) override
|
||||
{
|
||||
ManagedEC2InstanceTemplateParams TemplateParams;
|
||||
TemplateParams.FromMap(InParams);
|
||||
|
||||
const char* ParamValues[] =
|
||||
{
|
||||
TemplateParams.GameNameParameter.c_str(),
|
||||
TemplateParams.BuildOperatingSystemParameter.c_str(),
|
||||
TemplateParams.BuildS3BucketParameter.c_str(),
|
||||
TemplateParams.LambdaZipS3BucketParameter.c_str(),
|
||||
TemplateParams.LambdaZipS3KeyParameter.c_str(),
|
||||
TemplateParams.ApiGatewayStageNameParameter.c_str(),
|
||||
TemplateParams.AccountId.c_str(),
|
||||
TemplateParams.LaunchPathParameter.c_str(),
|
||||
BuildS3Path.c_str(),
|
||||
TemplateParams.UnrealEngineVersionParameter.c_str(),
|
||||
TemplateParams.EnableMetricsParameter.c_str()
|
||||
};
|
||||
|
||||
auto* ParamNames = GetParamNames();
|
||||
size_t Size = sizeof(ParamValues) / sizeof(*ParamValues);
|
||||
|
||||
return GameLiftAccountSaveFeatureInstanceTemplates(AwsAccountInstance->GetInstance(), ParamNames, ParamValues, Size);
|
||||
}
|
||||
|
||||
virtual FString GetScenarioPath() const override
|
||||
{
|
||||
return Paths::ScenarioPath(GetFolderName());
|
||||
}
|
||||
|
||||
virtual FString GetScenarioInstancePath() const override
|
||||
{
|
||||
return Paths::ScenarioInstancePath(GetFolderName());
|
||||
}
|
||||
|
||||
void SetBuildS3Path(const std::string& NewBuildS3Path)
|
||||
{
|
||||
BuildS3Path = NewBuildS3Path;
|
||||
}
|
||||
|
||||
private:
|
||||
std::string BuildS3Path;
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,35 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ScenarioWithParameters.h"
|
||||
|
||||
#include "aws/gamelift/core/errors.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class ScenarioWithoutGameServer : public ScenarioWithParameters
|
||||
{
|
||||
public:
|
||||
virtual int UploadGameServer(
|
||||
IAWSAccountInstance* AwsAccountInstance,
|
||||
const std::string& ServerFolderPath,
|
||||
const std::string& ExtraServerResourcesPath
|
||||
) override
|
||||
{
|
||||
return GameLift::GAMELIFT_SUCCESS;
|
||||
}
|
||||
|
||||
virtual int CreateLaunchPathParameter(
|
||||
const FString& BuildOperatingSystem,
|
||||
const FString& BuildFolderPath,
|
||||
const FString& BuildFilePath,
|
||||
std::string& StdLaunchPathParameter
|
||||
) override
|
||||
{
|
||||
StdLaunchPathParameter = "";
|
||||
return GameLift::GAMELIFT_SUCCESS;
|
||||
}
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "GameLiftCoreConstants.h"
|
||||
#include "Base/ScenarioWithContainerParameters.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class ContainersFlexMatch : public ScenarioWithContainerParameters
|
||||
{
|
||||
public:
|
||||
static const FText& Name()
|
||||
{
|
||||
return Menu::DeploymentServer::kContainersFlexMatch;
|
||||
}
|
||||
|
||||
static TUniquePtr<IAWSScenario> Create()
|
||||
{
|
||||
return MakeUnique<ContainersFlexMatch>();
|
||||
}
|
||||
|
||||
virtual FText GetTooltip() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kContainersFlexMatchTooltip;
|
||||
}
|
||||
|
||||
virtual FString GetFolderName() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kContainersFlexMatchFolder;
|
||||
}
|
||||
|
||||
virtual FText GetUserName() const override
|
||||
{
|
||||
return Name();
|
||||
}
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "GameLiftCoreConstants.h"
|
||||
#include "Base/ScenarioWithContainerParameters.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class ContainersSingleRegionFleet : public ScenarioWithContainerParameters
|
||||
{
|
||||
public:
|
||||
static const FText& Name()
|
||||
{
|
||||
return Menu::DeploymentServer::kContainersSingleRegionFleet;
|
||||
}
|
||||
|
||||
static TUniquePtr<IAWSScenario> Create()
|
||||
{
|
||||
return MakeUnique<ContainersSingleRegionFleet>();
|
||||
}
|
||||
|
||||
virtual FText GetTooltip() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kContainersSingleRegionFleetTooltip;
|
||||
}
|
||||
|
||||
virtual FString GetFolderName() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kContainersSingleRegionFleetFolder;
|
||||
}
|
||||
|
||||
virtual FText GetUserName() const override
|
||||
{
|
||||
return Name();
|
||||
}
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,51 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Base/ScenarioWithGameServer.h"
|
||||
#include "GameLiftCoreConstants.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class CustomScenario : public ScenarioWithGameServer
|
||||
{
|
||||
public:
|
||||
static const FText& Name()
|
||||
{
|
||||
return Menu::DeploymentServer::kCustom;
|
||||
}
|
||||
|
||||
static TUniquePtr<CustomScenario> Create(const FString& CustomScenarioPath)
|
||||
{
|
||||
return MakeUnique<CustomScenario>(CustomScenarioPath);
|
||||
}
|
||||
|
||||
CustomScenario(const FString& CustomScenarioPath) : Path(CustomScenarioPath)
|
||||
{
|
||||
}
|
||||
|
||||
virtual FText GetTooltip() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kCustomTooltip;
|
||||
}
|
||||
|
||||
virtual FString GetFolderName() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kCustomScenarioFolder;
|
||||
}
|
||||
|
||||
virtual FText GetUserName() const override
|
||||
{
|
||||
return Name();
|
||||
}
|
||||
|
||||
virtual FString GetScenarioPath() const override
|
||||
{
|
||||
return Path;
|
||||
}
|
||||
|
||||
private:
|
||||
FString Path;
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Base/ScenarioWithGameServer.h"
|
||||
#include "GameLiftCoreConstants.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class FlexMatch : public ScenarioWithGameServer
|
||||
{
|
||||
public:
|
||||
static const FText& Name()
|
||||
{
|
||||
return Menu::DeploymentServer::kFlexMatch;
|
||||
}
|
||||
|
||||
static TUniquePtr<IAWSScenario> Create()
|
||||
{
|
||||
return MakeUnique<FlexMatch>();
|
||||
}
|
||||
|
||||
virtual FText GetTooltip() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kFlexMatchTooltip;
|
||||
}
|
||||
|
||||
virtual FString GetFolderName() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kFlexMatchFolder;
|
||||
}
|
||||
|
||||
virtual FText GetUserName() const override
|
||||
{
|
||||
return Name();
|
||||
}
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,193 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
#include "IAWSAccountInstance.h"
|
||||
#include "aws/gamelift/core/enums.h"
|
||||
#include "Utils/StringConvertors.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
inline std::string GetLambdaS3Key(const std::string& GameName, const std::string& FunctionsReplacementId)
|
||||
{
|
||||
std::stringstream StringStream;
|
||||
|
||||
StringStream << GameName;
|
||||
StringStream << "/functions/" << GameLift::GetFeatureTypeString(GameLift::FeatureType::Main);
|
||||
StringStream << "/" << "requests" << "." << FunctionsReplacementId << ".zip";
|
||||
|
||||
return StringStream.str();
|
||||
}
|
||||
|
||||
struct BaseInstanceTemplateParams
|
||||
{
|
||||
std::string AccountId;
|
||||
std::string ApiGatewayStageNameParameter;
|
||||
std::string BuildFolderPath;
|
||||
std::string BuildS3BucketParameter;
|
||||
std::string ExtraServerResourcesPath;
|
||||
std::string GameNameParameter;
|
||||
std::string LambdaZipS3BucketParameter;
|
||||
std::string LambdaZipS3KeyParameter;
|
||||
std::string LaunchPathParameter;
|
||||
std::string UnrealEngineVersionParameter;
|
||||
std::string EnableMetricsParameter;
|
||||
|
||||
virtual ~BaseInstanceTemplateParams() = default;
|
||||
|
||||
virtual void FromMap(const TMap<FString, FString>& InMap) = 0;
|
||||
virtual TMap<FString, FString> ToMap() const = 0;
|
||||
};
|
||||
|
||||
struct ManagedEC2InstanceTemplateParams : BaseInstanceTemplateParams
|
||||
{
|
||||
std::string BuildOperatingSystemParameter;
|
||||
ManagedEC2InstanceTemplateParams() = default;
|
||||
|
||||
virtual void FromMap(const TMap<FString, FString>& InMap) override
|
||||
{
|
||||
const FString* InGameNameParameter = InMap.Find("GameNameParameter");
|
||||
const FString* InBuildOperatingSystemParameter = InMap.Find("BuildOperatingSystemParameter");
|
||||
const FString* InBuildS3BucketParameter = InMap.Find("BuildS3BucketParameter");
|
||||
const FString* InLambdaZipS3BucketParameter = InMap.Find("LambdaZipS3BucketParameter");
|
||||
const FString* InLambdaZipS3KeyParameter = InMap.Find("LambdaZipS3KeyParameter");
|
||||
const FString* InApiGatewayStageNameParameter = InMap.Find("ApiGatewayStageNameParameter");
|
||||
const FString* InAccountId = InMap.Find("AccountId");
|
||||
const FString* InLaunchPathParameter = InMap.Find("LaunchPathParameter");
|
||||
const FString* InUnrealEngineVersionParameter = InMap.Find("UnrealEngineVersionParameter");
|
||||
const FString* InEnableMetricsParameter = InMap.Find("EnableMetricsParameter");
|
||||
|
||||
if (InGameNameParameter && InBuildOperatingSystemParameter && InBuildS3BucketParameter
|
||||
&& InLambdaZipS3BucketParameter && InLambdaZipS3KeyParameter && InApiGatewayStageNameParameter
|
||||
&& InApiGatewayStageNameParameter && InAccountId && InLaunchPathParameter && InUnrealEngineVersionParameter
|
||||
&& InEnableMetricsParameter)
|
||||
{
|
||||
GameNameParameter = Convertors::FSToStdS(*InGameNameParameter);
|
||||
BuildOperatingSystemParameter = Convertors::FSToStdS(*InBuildOperatingSystemParameter);
|
||||
BuildS3BucketParameter = Convertors::FSToStdS(*InBuildS3BucketParameter);
|
||||
LambdaZipS3BucketParameter = Convertors::FSToStdS(*InLambdaZipS3BucketParameter);
|
||||
LambdaZipS3KeyParameter = Convertors::FSToStdS(*InLambdaZipS3KeyParameter);
|
||||
ApiGatewayStageNameParameter = Convertors::FSToStdS(*InApiGatewayStageNameParameter);
|
||||
AccountId = Convertors::FSToStdS(*InAccountId);
|
||||
LaunchPathParameter = Convertors::FSToStdS(*InLaunchPathParameter);
|
||||
UnrealEngineVersionParameter = Convertors::FSToStdS(*InUnrealEngineVersionParameter);
|
||||
EnableMetricsParameter = Convertors::FSToStdS(*InEnableMetricsParameter);
|
||||
}
|
||||
}
|
||||
|
||||
virtual TMap<FString, FString> ToMap() const override
|
||||
{
|
||||
TMap<FString, FString> ParamsMap = {};
|
||||
|
||||
ParamsMap.Emplace("GameNameParameter", GameNameParameter.c_str());
|
||||
ParamsMap.Emplace("BuildOperatingSystemParameter", BuildOperatingSystemParameter.c_str());
|
||||
ParamsMap.Emplace("BuildS3BucketParameter", BuildS3BucketParameter.c_str());
|
||||
ParamsMap.Emplace("LambdaZipS3BucketParameter", LambdaZipS3BucketParameter.c_str());
|
||||
ParamsMap.Emplace("LambdaZipS3KeyParameter", LambdaZipS3KeyParameter.c_str());
|
||||
ParamsMap.Emplace("ApiGatewayStageNameParameter", ApiGatewayStageNameParameter.c_str());
|
||||
ParamsMap.Emplace("AccountId", AccountId.c_str());
|
||||
ParamsMap.Emplace("LaunchPathParameter", LaunchPathParameter.c_str());
|
||||
ParamsMap.Emplace("UnrealEngineVersionParameter", UnrealEngineVersionParameter.c_str());
|
||||
ParamsMap.Emplace("EnableMetricsParameter", EnableMetricsParameter.c_str());
|
||||
|
||||
return ParamsMap;
|
||||
}
|
||||
};
|
||||
|
||||
struct ContainerInstanceTemplateParams : BaseInstanceTemplateParams
|
||||
{
|
||||
std::string ContainerGroupDefinitionNameParameter;
|
||||
std::string ContainerImageNameParameter;
|
||||
std::string ContainerImageUriParameter;
|
||||
std::string FleetUdpFromPortParameter;
|
||||
std::string FleetUdpToPortParameter;
|
||||
std::string TotalVcpuLimitParameter;
|
||||
std::string TotalMemoryLimitParameter;
|
||||
|
||||
ContainerInstanceTemplateParams() = default;
|
||||
|
||||
virtual void FromMap(const TMap<FString, FString>& InMap) override
|
||||
{
|
||||
const FString* InAccountId = InMap.Find("AccountId");
|
||||
const FString* InApiGatewayStageNameParameter = InMap.Find("ApiGatewayStageNameParameter");
|
||||
const FString* InContainerGroupDefinitionNameParameter = InMap.Find("ContainerGroupDefinitionNameParameter");
|
||||
const FString* InContainerImageNameParameter = InMap.Find("ContainerImageNameParameter");
|
||||
const FString* InContainerImageUriParameter = InMap.Find("ContainerImageUriParameter");
|
||||
const FString* InGameNameParameter = InMap.Find("GameNameParameter");
|
||||
const FString* InLambdaZipS3BucketParameter = InMap.Find("LambdaZipS3BucketParameter");
|
||||
const FString* InLambdaZipS3KeyParameter = InMap.Find("LambdaZipS3KeyParameter");
|
||||
const FString* InLaunchPathParameter = InMap.Find("LaunchPathParameter");
|
||||
const FString* InFleetUdpFromPortParameter = InMap.Find("FleetUdpFromPortParameter");
|
||||
const FString* InFleetUdpToPortParameter = InMap.Find("FleetUdpToPortParameter");
|
||||
const FString* InTotalVcpuLimitParameter = InMap.Find("TotalVcpuLimitParameter");
|
||||
const FString* InTotalMemoryLimitParameter = InMap.Find("TotalMemoryLimitParameter");
|
||||
const FString* InUnrealEngineVersionParameter = InMap.Find("UnrealEngineVersionParameter");
|
||||
const FString* InEnableMetricsParameter = InMap.Find("EnableMetricsParameter");
|
||||
|
||||
if (InAccountId && InApiGatewayStageNameParameter && InContainerGroupDefinitionNameParameter
|
||||
&& InContainerImageNameParameter && InContainerImageUriParameter && InGameNameParameter
|
||||
&& InLambdaZipS3BucketParameter && InLambdaZipS3KeyParameter && InLaunchPathParameter
|
||||
&& InFleetUdpFromPortParameter && InFleetUdpToPortParameter && InTotalVcpuLimitParameter
|
||||
&& InTotalMemoryLimitParameter && InUnrealEngineVersionParameter && InEnableMetricsParameter)
|
||||
{
|
||||
AccountId = Convertors::FSToStdS(*InAccountId);
|
||||
ApiGatewayStageNameParameter = Convertors::FSToStdS(*InApiGatewayStageNameParameter);
|
||||
ContainerGroupDefinitionNameParameter = Convertors::FSToStdS(*InContainerGroupDefinitionNameParameter);
|
||||
ContainerImageNameParameter = Convertors::FSToStdS(*InContainerImageNameParameter);
|
||||
ContainerImageUriParameter = Convertors::FSToStdS(*InContainerImageUriParameter);
|
||||
GameNameParameter = Convertors::FSToStdS(*InGameNameParameter);
|
||||
LambdaZipS3BucketParameter = Convertors::FSToStdS(*InLambdaZipS3BucketParameter);
|
||||
LambdaZipS3KeyParameter = Convertors::FSToStdS(*InLambdaZipS3KeyParameter);
|
||||
LaunchPathParameter = Convertors::FSToStdS(*InLaunchPathParameter);
|
||||
FleetUdpFromPortParameter = Convertors::FSToStdS(*InFleetUdpFromPortParameter);
|
||||
FleetUdpToPortParameter = Convertors::FSToStdS(*InFleetUdpToPortParameter);
|
||||
TotalVcpuLimitParameter = Convertors::FSToStdS(*InTotalVcpuLimitParameter);
|
||||
TotalMemoryLimitParameter = Convertors::FSToStdS(*InTotalMemoryLimitParameter);
|
||||
UnrealEngineVersionParameter = Convertors::FSToStdS(*InUnrealEngineVersionParameter);
|
||||
EnableMetricsParameter = Convertors::FSToStdS(*InEnableMetricsParameter);
|
||||
}
|
||||
}
|
||||
|
||||
virtual TMap<FString, FString> ToMap() const override
|
||||
{
|
||||
TMap<FString, FString> ParamsMap = {};
|
||||
|
||||
ParamsMap.Emplace("AccountId", AccountId.c_str());
|
||||
ParamsMap.Emplace("ApiGatewayStageNameParameter", ApiGatewayStageNameParameter.c_str());
|
||||
ParamsMap.Emplace("ContainerGroupDefinitionNameParameter", ContainerGroupDefinitionNameParameter.c_str());
|
||||
ParamsMap.Emplace("ContainerImageNameParameter", ContainerImageNameParameter.c_str());
|
||||
ParamsMap.Emplace("ContainerImageUriParameter", ContainerImageUriParameter.c_str());
|
||||
ParamsMap.Emplace("GameNameParameter", GameNameParameter.c_str());
|
||||
ParamsMap.Emplace("LambdaZipS3BucketParameter", LambdaZipS3BucketParameter.c_str());
|
||||
ParamsMap.Emplace("LambdaZipS3KeyParameter", LambdaZipS3KeyParameter.c_str());
|
||||
ParamsMap.Emplace("LaunchPathParameter", LaunchPathParameter.c_str());
|
||||
ParamsMap.Emplace("FleetUdpFromPortParameter", FleetUdpFromPortParameter.c_str());
|
||||
ParamsMap.Emplace("FleetUdpToPortParameter", FleetUdpToPortParameter.c_str());
|
||||
ParamsMap.Emplace("TotalVcpuLimitParameter", TotalVcpuLimitParameter.c_str());
|
||||
ParamsMap.Emplace("TotalMemoryLimitParameter", TotalMemoryLimitParameter.c_str());
|
||||
ParamsMap.Emplace("UnrealEngineVersionParameter", UnrealEngineVersionParameter.c_str());
|
||||
ParamsMap.Emplace("EnableMetricsParameter", EnableMetricsParameter.c_str());
|
||||
return ParamsMap;
|
||||
}
|
||||
};
|
||||
|
||||
class IAWSScenario
|
||||
{
|
||||
public:
|
||||
virtual ~IAWSScenario() = default;
|
||||
|
||||
virtual const char* const* GetParamNames() const = 0;
|
||||
virtual FText GetTooltip() const = 0;
|
||||
virtual FString GetFolderName() const = 0;
|
||||
virtual FText GetUserName() const = 0;
|
||||
virtual FString GetScenarioPath() const = 0;
|
||||
virtual FString GetScenarioInstancePath() const = 0;
|
||||
|
||||
virtual int SaveFeatureInstanceTemplate(IAWSAccountInstance* AwsAccountInstance, const TMap<FString, FString>& InParams) = 0;
|
||||
virtual int UploadGameServer(IAWSAccountInstance* AwsAccountInstance, const std::string& ServerFolderPath, const std::string& ExtraServerResourcesPath) = 0;
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Base/ScenarioWithGameServer.h"
|
||||
#include "GameLiftCoreConstants.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class SingleRegionFleet : public ScenarioWithGameServer
|
||||
{
|
||||
public:
|
||||
static const FText& Name()
|
||||
{
|
||||
return Menu::DeploymentServer::kSingleRegionFleet;
|
||||
}
|
||||
|
||||
static TUniquePtr<IAWSScenario> Create()
|
||||
{
|
||||
return MakeUnique<SingleRegionFleet>();
|
||||
}
|
||||
|
||||
virtual FText GetTooltip() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kSingleRegionFleetTooltip;
|
||||
}
|
||||
|
||||
virtual FString GetFolderName() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kSingleRegionFleetFolder;
|
||||
}
|
||||
|
||||
virtual FText GetUserName() const override
|
||||
{
|
||||
return Name();
|
||||
}
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
@@ -0,0 +1,39 @@
|
||||
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Base/ScenarioWithGameServer.h"
|
||||
#include "GameLiftCoreConstants.h"
|
||||
|
||||
namespace AwsScenarios
|
||||
{
|
||||
class SpotFleets : public ScenarioWithGameServer
|
||||
{
|
||||
public:
|
||||
static const FText& Name()
|
||||
{
|
||||
return Menu::DeploymentServer::kSpotFleets;
|
||||
}
|
||||
|
||||
static TUniquePtr<IAWSScenario> Create()
|
||||
{
|
||||
return MakeUnique<SpotFleets>();
|
||||
}
|
||||
|
||||
virtual FText GetTooltip() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kSpotFleetsTooltip;
|
||||
}
|
||||
|
||||
virtual FString GetFolderName() const override
|
||||
{
|
||||
return Menu::DeploymentServer::kSpotFleetsFolder;
|
||||
}
|
||||
|
||||
virtual FText GetUserName() const override
|
||||
{
|
||||
return Name();
|
||||
}
|
||||
};
|
||||
} // namespace AwsScenarios
|
||||
Reference in New Issue
Block a user