master
cpp 56 lines 1.5 KB
Raw
1 /*++
2
3 Copyright (c) Microsoft. All rights reserved.
4
5 Module Name:
6
7 NetworkCreateCommand.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 Create Command
27 std::vector<Argument> NetworkCreateCommand::GetArguments() const
28 {
29 return {
30 Argument::Create(ArgType::NetworkName, {.Required = true}),
31 Argument::Create(ArgType::Driver, {.Desc = Localization::WSLCCLI_NetworkDriverOptionDescription()}),
32 Argument::Create(ArgType::Options, {.Limit = Limit::Unlimited}),
33 Argument::Create(ArgType::Label, {.Limit = Limit::Unlimited, .Desc = Localization::WSLCCLI_NetworkLabelArgDescription()}),
34 Argument::Create(ArgType::Gateway),
35 Argument::Create(ArgType::Internal),
36 Argument::Create(ArgType::IpRange),
37 Argument::Create(ArgType::Subnet),
38 };
39 }
40
41 std::wstring NetworkCreateCommand::ShortDescription() const
42 {
43 return Localization::WSLCCLI_NetworkCreateDesc();
44 }
45
46 std::wstring NetworkCreateCommand::LongDescription() const
47 {
48 return Localization::WSLCCLI_NetworkCreateLongDesc();
49 }
50
51 void NetworkCreateCommand::ExecuteInternal(CLIExecutionContext& context) const
52 {
53 context << ResolveSession //
54 << CreateNetwork;
55 }
56 } // namespace wsl::windows::wslc