master
cpp 56 lines 1.51 KB
Raw
1 /*++
2
3 Copyright (c) Microsoft. All rights reserved.
4
5 Module Name:
6
7 NetworkConnectCommand.cpp
8
9 Abstract:
10
11 Implementation of command execution logic.
12
13 --*/
14
15 #include "NetworkCommand.h"
16 #include "CLIExecutionContext.h"
17 #include "SessionTasks.h"
18 #include "NetworkTasks.h"
19 #include "Task.h"
20
21 using namespace wsl::windows::wslc::execution;
22 using namespace wsl::windows::wslc::task;
23 using namespace wsl::shared;
24
25 namespace wsl::windows::wslc {
26 // Network Connect Command
27 std::vector<Argument> NetworkConnectCommand::GetArguments() const
28 {
29 return {
30 Argument::Create(ArgType::NetworkName, {.Required = true}),
31 Argument::Create(ArgType::ContainerId, {.Required = true}),
32 Argument::Create(ArgType::DriverOpt, {.Limit = Limit::Unlimited}),
33 Argument::Create(ArgType::IpAddress),
34 Argument::Create(ArgType::Link, {.Limit = Limit::Unlimited}),
35 Argument::Create(ArgType::LinkLocalIp, {.Limit = Limit::Unlimited}),
36 Argument::Create(ArgType::NetworkAlias, {.Limit = Limit::Unlimited}),
37 };
38 }
39
40 std::wstring NetworkConnectCommand::ShortDescription() const
41 {
42 return Localization::WSLCCLI_NetworkConnectDesc();
43 }
44
45 std::wstring NetworkConnectCommand::LongDescription() const
46 {
47 return Localization::WSLCCLI_NetworkConnectLongDesc();
48 }
49
50 void NetworkConnectCommand::ExecuteInternal(CLIExecutionContext& context) const
51 {
52 context << ResolveSession //
53 << SetNetworkEndpointOptionsFromArgs //
54 << ConnectNetwork;
55 }
56 } // namespace wsl::windows::wslc