hcs-cli 0.1.319__py3-none-any.whl → 0.1.321__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hcs_cli/__init__.py +2 -2
- hcs_cli/cmds/dev/fs/clear.py +8 -0
- hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml +3 -3
- hcs_cli/cmds/hoc/stats.py +72 -0
- hcs_cli/cmds/inventory/delete.py +48 -0
- hcs_cli/cmds/lcm/provider/create.py +11 -2
- hcs_cli/cmds/lcm/template/expand.py +46 -0
- hcs_cli/cmds/lcm/vm/delete.py +3 -2
- hcs_cli/cmds/task.py +1 -0
- hcs_cli/cmds/template/expand.py +64 -19
- hcs_cli/cmds/template/update.py +2 -2
- hcs_cli/cmds/vm/delete.py +3 -2
- hcs_cli/cmds/vm/list.py +51 -39
- hcs_cli/cmds/vmm/rootca_migrate.py +1 -1
- hcs_cli/payload/lcm/azure-dummy.json +6 -5
- hcs_cli/payload/lcm/zero.json +3 -2
- hcs_cli/service/admin/template.py +10 -1
- hcs_cli/service/hoc/diagnostic.py +11 -0
- hcs_cli/service/inventory/__init__.py +15 -2
- hcs_cli/service/inventory/vm.py +12 -0
- hcs_cli/service/lcm/template.py +9 -6
- hcs_cli/service/template.py +1 -1
- hcs_cli/support/vm_table.py +2 -2
- {hcs_cli-0.1.319.dist-info → hcs_cli-0.1.321.dist-info}/METADATA +2 -2
- {hcs_cli-0.1.319.dist-info → hcs_cli-0.1.321.dist-info}/RECORD +28 -26
- hcs_cli/payload/lcm/azure-dummy-nt.json +0 -67
- /hcs_cli/payload/lcm/{zero-new.json → zero-legacy.json} +0 -0
- {hcs_cli-0.1.319.dist-info → hcs_cli-0.1.321.dist-info}/WHEEL +0 -0
- {hcs_cli-0.1.319.dist-info → hcs_cli-0.1.321.dist-info}/entry_points.txt +0 -0
hcs_cli/__init__.py
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
__version__ = "0.1.
|
|
1
|
+
__version__ = "0.1.321"
|
|
2
2
|
|
|
3
|
-
from . import service
|
|
3
|
+
from . import service as service # noqa: F401
|
hcs_cli/cmds/dev/fs/clear.py
CHANGED
|
@@ -13,12 +13,14 @@ See the License for the specific language governing permissions and
|
|
|
13
13
|
limitations under the License.
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
+
import os
|
|
16
17
|
import click
|
|
17
18
|
|
|
18
19
|
import hcs_cli.cmds.dev.util.log as log
|
|
19
20
|
from hcs_cli.cmds.dev.fs.helper.util import validate_fs_kubeconfig, validate_fs_profile
|
|
20
21
|
from hcs_cli.cmds.dev.fs.init import _resolve_bundled_file_path
|
|
21
22
|
from hcs_cli.support.exec_util import run_cli
|
|
23
|
+
from hcs_core.ctxp import profile
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
@click.command()
|
|
@@ -42,6 +44,7 @@ def clear(only_default: bool, **kwargs):
|
|
|
42
44
|
if not only_default:
|
|
43
45
|
_delete_all()
|
|
44
46
|
|
|
47
|
+
os.environ["ORG_ID"] = profile.current().csp.orgId
|
|
45
48
|
akka_plan_path = _resolve_bundled_file_path("provided_files/akka.plan.yml")
|
|
46
49
|
azure_plan_path = _resolve_bundled_file_path("provided_files/azure.plan.yml")
|
|
47
50
|
azsim_plan_path = _resolve_bundled_file_path("provided_files/azsim.plan.yml")
|
|
@@ -90,3 +93,8 @@ def _delete_all():
|
|
|
90
93
|
provider_ids = run_cli("hcs provider list --ids", output_json=True)
|
|
91
94
|
for pid in provider_ids:
|
|
92
95
|
run_cli("hcs provider delete -y " + pid, raise_on_error=False)
|
|
96
|
+
|
|
97
|
+
# all lcm internal providers
|
|
98
|
+
lcm_provider_ids = run_cli("hcs lcm provider list --ids", output_json=True)
|
|
99
|
+
for lpid in lcm_provider_ids:
|
|
100
|
+
run_cli("hcs lcm provider delete " + lpid, raise_on_error=False)
|
|
@@ -75,7 +75,7 @@ stringData:
|
|
|
75
75
|
JcSvTMU2HOuQ/q6vFZq3PRbvroMeXlw2WJrqO3vu04SZwYiP8dcrlHTXQJh+Mp9T
|
|
76
76
|
mQ==
|
|
77
77
|
-----END CERTIFICATE-----
|
|
78
|
-
|
|
78
|
+
mqtt.ca-key: |-
|
|
79
79
|
-----BEGIN PRIVATE KEY-----
|
|
80
80
|
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDUNJx2Cf0noNHc
|
|
81
81
|
DXB9AFPSFMkkpwxb0wtqaCLiB7v5zkF7CVBl5LnecVk7CM8bJY62H90Lv8Zv/2sl
|
|
@@ -104,7 +104,7 @@ stringData:
|
|
|
104
104
|
boPQ+RK1VKj5UFkUKz5LiohLmCBEQ7sh1HBS2Vje8MFtg0P138sRlbMCvdAEARTZ
|
|
105
105
|
uQfAKLns7QFf9W1C60AVAQ==
|
|
106
106
|
-----END PRIVATE KEY-----
|
|
107
|
-
|
|
107
|
+
mqtt.client-cert: |-
|
|
108
108
|
-----BEGIN CERTIFICATE-----
|
|
109
109
|
MIIFKDCCAxCgAwIBAgIFALjj4O4wDQYJKoZIhvcNAQELBQAwdTELMAkGA1UEBhMC
|
|
110
110
|
VVMxCzAJBgNVBAgMAkNBMR8wHQYDVQQKDBZIb3Jpem9uIENsb3VkIFNlcnZpY2Vz
|
|
@@ -204,7 +204,7 @@ stringData:
|
|
|
204
204
|
JcSvTMU2HOuQ/q6vFZq3PRbvroMeXlw2WJrqO3vu04SZwYiP8dcrlHTXQJh+Mp9T
|
|
205
205
|
mQ==
|
|
206
206
|
-----END CERTIFICATE-----
|
|
207
|
-
|
|
207
|
+
mqtt.client-key: |-
|
|
208
208
|
-----BEGIN PRIVATE KEY-----
|
|
209
209
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC40aC4pyy0+++D
|
|
210
210
|
kD1cPRsMWO4ANZ8L4LaaHcg/e/1NbiExd/QlZESNJnnIyD29qY1h9WGEVDHtInsl
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import click
|
|
2
|
+
import datetime
|
|
3
|
+
import json
|
|
4
|
+
import time
|
|
5
|
+
|
|
6
|
+
from hcs_cli.service.hoc import diagnostic
|
|
7
|
+
from hcs_cli.service import tsctl
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@click.command(name="stats-aggregate-connects")
|
|
11
|
+
@click.argument("from_", type=int)
|
|
12
|
+
@click.argument("to", type=int)
|
|
13
|
+
@click.option("--wait", type=bool, required=False, is_flag=True, default=False)
|
|
14
|
+
@click.option("--verbose", type=bool, required=False, is_flag=True, default=False)
|
|
15
|
+
def aggregate_connects(from_: int, to: int, wait: bool, verbose: bool):
|
|
16
|
+
"""
|
|
17
|
+
Aggregate connect events between FROM_ and TO unix timestamps.
|
|
18
|
+
"""
|
|
19
|
+
payload = {"from": from_, "to": to}
|
|
20
|
+
result = diagnostic.aggregateConnects(payload, verbose=verbose)
|
|
21
|
+
click.echo(result)
|
|
22
|
+
|
|
23
|
+
if not result:
|
|
24
|
+
return "", 1
|
|
25
|
+
|
|
26
|
+
if wait:
|
|
27
|
+
wait_for_task(result)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
@click.command(name="stats-aggregate-connects-day-before")
|
|
31
|
+
@click.option("--wait", type=bool, required=False, is_flag=True, default=False)
|
|
32
|
+
@click.option("--verbose", type=bool, required=False, is_flag=True, default=False)
|
|
33
|
+
def aggregate_connects_day_before(wait: bool, verbose: bool):
|
|
34
|
+
dt = datetime.datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0)
|
|
35
|
+
dt_2_days_ago = dt - datetime.timedelta(days=2)
|
|
36
|
+
dt_1_day_ago = dt - datetime.timedelta(days=1)
|
|
37
|
+
|
|
38
|
+
print(f"Aggregating connect events from {dt_2_days_ago} to {dt_1_day_ago}")
|
|
39
|
+
from_ = int(dt_2_days_ago.timestamp())
|
|
40
|
+
to = int(dt_1_day_ago.timestamp())
|
|
41
|
+
payload = {"from": from_, "to": to}
|
|
42
|
+
result = diagnostic.aggregateConnects(payload, verbose=verbose)
|
|
43
|
+
click.echo(result)
|
|
44
|
+
if not result:
|
|
45
|
+
return "", 1
|
|
46
|
+
if wait:
|
|
47
|
+
wait_for_task(result)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def wait_for_task(result: dict):
|
|
51
|
+
print("Waiting for task to complete...")
|
|
52
|
+
totalWaitTime = 0
|
|
53
|
+
while True:
|
|
54
|
+
time.sleep(10)
|
|
55
|
+
taskStatus = tsctl.task.lastlog(result.namespace, result.group, result.taskKey)
|
|
56
|
+
if "state" in taskStatus and taskStatus.state == "Error":
|
|
57
|
+
print(f"Task is in {taskStatus.state} state - {taskStatus.error} ")
|
|
58
|
+
print(json.dumps(taskStatus, indent=2))
|
|
59
|
+
break
|
|
60
|
+
if "state" in taskStatus and taskStatus.state == "Success":
|
|
61
|
+
print("Task completed successfully.")
|
|
62
|
+
print(json.dumps(taskStatus, indent=2))
|
|
63
|
+
break
|
|
64
|
+
if ("state" in taskStatus and taskStatus.state == "") or "state" not in taskStatus:
|
|
65
|
+
print("Task is still in progress...")
|
|
66
|
+
totalWaitTime += 10
|
|
67
|
+
if totalWaitTime >= 600:
|
|
68
|
+
print("Waited for 10 minutes, exiting.")
|
|
69
|
+
break
|
|
70
|
+
continue
|
|
71
|
+
print(json.dumps(taskStatus, indent=2))
|
|
72
|
+
break
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright 2023-2023 VMware Inc.
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import click
|
|
17
|
+
from hcs_core.ctxp import recent
|
|
18
|
+
import hcs_core.sglib.cli_options as cli
|
|
19
|
+
|
|
20
|
+
from hcs_cli.service import inventory
|
|
21
|
+
from hcs_cli.support.param_util import parse_vm_path
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@click.command()
|
|
25
|
+
@cli.org_id
|
|
26
|
+
@click.argument("vm_path", type=str, required=False)
|
|
27
|
+
def delete(org: str, vm_path: str):
|
|
28
|
+
"""Delete a VM by path, e.g., template1/vm1, or 'vm1,vm2,vm3'."""
|
|
29
|
+
|
|
30
|
+
org_id = cli.get_org_id(org)
|
|
31
|
+
|
|
32
|
+
if vm_path.find(",") > 0:
|
|
33
|
+
vm_ids = [v.strip() for v in vm_path.split(",")]
|
|
34
|
+
template_id = recent.require("template", None)
|
|
35
|
+
else:
|
|
36
|
+
template_id, vm_id = parse_vm_path(vm_path)
|
|
37
|
+
ret = inventory.get(template_id, vm_id, org_id)
|
|
38
|
+
if not ret:
|
|
39
|
+
return "", 1
|
|
40
|
+
vm_ids = [vm_id]
|
|
41
|
+
|
|
42
|
+
ret = {"_requested_ids": vm_ids, "_accepted_ids": [], "_deleted": 0}
|
|
43
|
+
vms = inventory.begin_deleting_vms_by_id(template_id, org_id, vm_ids)
|
|
44
|
+
for vm in vms:
|
|
45
|
+
ret["_accepted_ids"].append(vm["id"])
|
|
46
|
+
actual_deleted = inventory.finish_deleting_vms(template_id, org_id, vm_ids)
|
|
47
|
+
ret["_deleted"] = actual_deleted
|
|
48
|
+
return ret
|
|
@@ -63,6 +63,12 @@ from hcs_cli.support import constant
|
|
|
63
63
|
required=False,
|
|
64
64
|
help="",
|
|
65
65
|
)
|
|
66
|
+
@click.option(
|
|
67
|
+
"--subscription-id",
|
|
68
|
+
type=str,
|
|
69
|
+
required=False,
|
|
70
|
+
help="",
|
|
71
|
+
)
|
|
66
72
|
@click.option(
|
|
67
73
|
"--file",
|
|
68
74
|
"-f",
|
|
@@ -80,6 +86,7 @@ def create(
|
|
|
80
86
|
client_id: str,
|
|
81
87
|
client_secret: str,
|
|
82
88
|
tenant_id: str,
|
|
89
|
+
subscription_id: str,
|
|
83
90
|
file: str,
|
|
84
91
|
org: str,
|
|
85
92
|
**kwargs,
|
|
@@ -108,7 +115,7 @@ def create(
|
|
|
108
115
|
"description": description,
|
|
109
116
|
"credentialId": credential_id,
|
|
110
117
|
}
|
|
111
|
-
elif client_id or client_secret or tenant_id:
|
|
118
|
+
elif client_id or client_secret or tenant_id or subscription_id:
|
|
112
119
|
if type != "AZURE":
|
|
113
120
|
raise click.BadParameter("client-id is only supported for Azure provider.")
|
|
114
121
|
if not client_id:
|
|
@@ -117,7 +124,8 @@ def create(
|
|
|
117
124
|
raise click.BadParameter("client-secret is required for client-id.")
|
|
118
125
|
if not tenant_id:
|
|
119
126
|
raise click.BadParameter("tenant-id is required for Azure provider.")
|
|
120
|
-
|
|
127
|
+
if not subscription_id:
|
|
128
|
+
raise click.BadParameter("subscription-id is required for Azure provider.")
|
|
121
129
|
data = {
|
|
122
130
|
"id": id if id else _rand_id(8),
|
|
123
131
|
"type": type,
|
|
@@ -126,6 +134,7 @@ def create(
|
|
|
126
134
|
"description": description,
|
|
127
135
|
"credentialId": credential_id,
|
|
128
136
|
"tenantId": tenant_id,
|
|
137
|
+
"subscriptionId": subscription_id,
|
|
129
138
|
"credentials": [
|
|
130
139
|
{
|
|
131
140
|
"clientId": client_id,
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Copyright 2023-2023 VMware Inc.
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
See the License for the specific language governing permissions and
|
|
13
|
+
limitations under the License.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
import click
|
|
17
|
+
import hcs_core.sglib.cli_options as cli
|
|
18
|
+
|
|
19
|
+
import hcs_cli.service.lcm as lcm
|
|
20
|
+
from hcs_cli.cmds.template.expand import expand_impl
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@click.command(hidden=True)
|
|
24
|
+
@click.option(
|
|
25
|
+
"--number",
|
|
26
|
+
"-n",
|
|
27
|
+
type=int,
|
|
28
|
+
required=False,
|
|
29
|
+
default=0,
|
|
30
|
+
help="Number of VMs to expand. Use negative number to shrink.",
|
|
31
|
+
)
|
|
32
|
+
@click.option(
|
|
33
|
+
"--to",
|
|
34
|
+
"-t",
|
|
35
|
+
type=int,
|
|
36
|
+
required=False,
|
|
37
|
+
default=0,
|
|
38
|
+
help="Expected size of template.",
|
|
39
|
+
)
|
|
40
|
+
@click.argument("template_id", type=str, required=False)
|
|
41
|
+
@cli.org_id
|
|
42
|
+
@cli.wait
|
|
43
|
+
def expand(number: int, to: int, template_id: str, org: str, wait: str):
|
|
44
|
+
"""Update an existing template"""
|
|
45
|
+
|
|
46
|
+
return expand_impl(number, to, template_id, org, wait, lcm)
|
hcs_cli/cmds/lcm/vm/delete.py
CHANGED
|
@@ -24,8 +24,9 @@ from hcs_cli.support.param_util import parse_vm_path
|
|
|
24
24
|
@click.argument("vm_path", type=str, required=False)
|
|
25
25
|
@cli.org_id
|
|
26
26
|
@cli.confirm
|
|
27
|
+
@cli.force
|
|
27
28
|
@cli.wait
|
|
28
|
-
def delete(vm_path: str, org: str, confirm: bool, wait: str, **kwargs):
|
|
29
|
+
def delete(vm_path: str, org: str, confirm: bool, force: bool, wait: str, **kwargs):
|
|
29
30
|
"""Delete VM"""
|
|
30
31
|
template_id, vm_id = parse_vm_path(vm_path)
|
|
31
32
|
org_id = cli.get_org_id(org)
|
|
@@ -37,7 +38,7 @@ def delete(vm_path: str, org: str, confirm: bool, wait: str, **kwargs):
|
|
|
37
38
|
if not confirm:
|
|
38
39
|
click.confirm(f"Delete VM {template_id}/{vm_id}?", abort=True)
|
|
39
40
|
|
|
40
|
-
vm.delete(template_id, vm_id, org_id, **kwargs)
|
|
41
|
+
vm.delete(template_id, vm_id, org_id, force=force, **kwargs)
|
|
41
42
|
|
|
42
43
|
if wait == "0":
|
|
43
44
|
return
|
hcs_cli/cmds/task.py
CHANGED
|
@@ -222,6 +222,7 @@ def use(namespace: str, group: str, smart_path: str, reset: bool, **kwargs):
|
|
|
222
222
|
required=False,
|
|
223
223
|
help="Filter tasks by state, for one-time tasks only. Comma separated values. E.g. Init,Running,Canceled,Error,Success",
|
|
224
224
|
)
|
|
225
|
+
@click.option("--v1", is_flag=True, default=False, required=False, help="Use v1 task API.")
|
|
225
226
|
@click.option("--v1log", is_flag=True, default=False, required=False, help="Fetch last log for v1 tasks.")
|
|
226
227
|
@cli.limit
|
|
227
228
|
@cli.search
|
hcs_cli/cmds/template/expand.py
CHANGED
|
@@ -27,39 +27,84 @@ import hcs_cli.service.admin as admin
|
|
|
27
27
|
"-n",
|
|
28
28
|
type=int,
|
|
29
29
|
required=False,
|
|
30
|
-
default=
|
|
30
|
+
default=0,
|
|
31
31
|
help="Number of VMs to expand. Use negative number to shrink.",
|
|
32
32
|
)
|
|
33
|
+
@click.option(
|
|
34
|
+
"--to",
|
|
35
|
+
"-t",
|
|
36
|
+
type=int,
|
|
37
|
+
required=False,
|
|
38
|
+
default=0,
|
|
39
|
+
help="Expected size of template.",
|
|
40
|
+
)
|
|
33
41
|
@click.argument("template_id", type=str, required=False)
|
|
34
42
|
@cli.org_id
|
|
35
43
|
@cli.wait
|
|
36
|
-
def expand(number: int, template_id: str, org: str, wait: str
|
|
44
|
+
def expand(number: int, to: int, template_id: str, org: str, wait: str):
|
|
37
45
|
"""Update an existing template"""
|
|
46
|
+
return expand_impl(number, to, template_id, org, wait, admin)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def expand_impl(number: int, to: int, template_id: str, org: str, wait: str, service):
|
|
50
|
+
if to != 0 and number != 0:
|
|
51
|
+
return "Specify either --to or --number, not both.", 1
|
|
52
|
+
if to < 0:
|
|
53
|
+
return "--to must be non-negative.", 1
|
|
54
|
+
if to > 5000:
|
|
55
|
+
return "--to exceeds maximum limit of 5000.", 1
|
|
38
56
|
|
|
39
57
|
org_id = cli.get_org_id(org)
|
|
40
58
|
|
|
41
59
|
template_id = recent.require("template", template_id)
|
|
42
|
-
template =
|
|
60
|
+
template = service.template.get(template_id, org_id)
|
|
43
61
|
|
|
44
62
|
if not template:
|
|
45
|
-
return "Template not found: " + template_id
|
|
63
|
+
return "Template not found: " + template_id, 1
|
|
46
64
|
|
|
47
65
|
spare_policy = template.get("sparePolicy", {})
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"limit": spare_policy.get("limit", 0) + number,
|
|
53
|
-
}
|
|
66
|
+
new_spare_policy = {
|
|
67
|
+
"min": spare_policy.get("min", 0),
|
|
68
|
+
"max": spare_policy.get("max", 0),
|
|
69
|
+
"limit": spare_policy.get("limit", 0),
|
|
54
70
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
|
|
72
|
+
if to != 0:
|
|
73
|
+
new_spare_policy["min"] = to
|
|
74
|
+
new_spare_policy["max"] = to
|
|
75
|
+
new_spare_policy["limit"] = to
|
|
76
|
+
else:
|
|
77
|
+
if number == 0:
|
|
78
|
+
number = 1 # default to expand by 1
|
|
79
|
+
new_spare_policy["min"] += number
|
|
80
|
+
new_spare_policy["max"] += number
|
|
81
|
+
new_spare_policy["limit"] += number
|
|
82
|
+
|
|
83
|
+
if new_spare_policy["limit"] < 0:
|
|
84
|
+
new_spare_policy["limit"] = 0
|
|
85
|
+
elif new_spare_policy["limit"] > 5000:
|
|
86
|
+
new_spare_policy["limit"] = 5000
|
|
87
|
+
|
|
88
|
+
if new_spare_policy["min"] < 0:
|
|
89
|
+
new_spare_policy["min"] = 0
|
|
90
|
+
elif new_spare_policy["min"] > new_spare_policy["limit"]:
|
|
91
|
+
new_spare_policy["min"] = new_spare_policy["limit"]
|
|
92
|
+
if new_spare_policy["max"] < 0:
|
|
93
|
+
new_spare_policy["max"] = 0
|
|
94
|
+
elif new_spare_policy["max"] > new_spare_policy["limit"]:
|
|
95
|
+
new_spare_policy["max"] = new_spare_policy["limit"]
|
|
96
|
+
|
|
97
|
+
if (
|
|
98
|
+
new_spare_policy["min"] == spare_policy.get("min", 0)
|
|
99
|
+
and new_spare_policy["max"] == spare_policy.get("max", 0)
|
|
100
|
+
and new_spare_policy["limit"] == spare_policy.get("limit", 0)
|
|
101
|
+
):
|
|
102
|
+
# no change
|
|
103
|
+
ret = template
|
|
104
|
+
else:
|
|
105
|
+
patch = {"sparePolicy": new_spare_policy}
|
|
106
|
+
ret = service.template.patch(template_id, org_id, patch)
|
|
107
|
+
|
|
63
108
|
if wait != "0":
|
|
64
|
-
ret =
|
|
109
|
+
ret = service.template.wait_for_ready(template_id, org_id, duration.to_seconds(wait))
|
|
65
110
|
return ret
|
hcs_cli/cmds/template/update.py
CHANGED
|
@@ -43,7 +43,7 @@ def update(template_id: str, update, org: str, wait: str, **kwargs):
|
|
|
43
43
|
template = admin.template.get(template_id, org_id)
|
|
44
44
|
|
|
45
45
|
if not template:
|
|
46
|
-
return "Template not found: " + template_id
|
|
46
|
+
return "Template not found: " + template_id, 1
|
|
47
47
|
|
|
48
48
|
allowed_fields = ["name", "description", "powerPolicy", "sparePolicy", "applicationProperties", "flags"]
|
|
49
49
|
|
|
@@ -52,7 +52,7 @@ def update(template_id: str, update, org: str, wait: str, **kwargs):
|
|
|
52
52
|
if not patch:
|
|
53
53
|
return template
|
|
54
54
|
|
|
55
|
-
ret = admin.template.
|
|
55
|
+
ret = admin.template.patch(template_id, org_id, patch)
|
|
56
56
|
if wait != "0":
|
|
57
57
|
ret = admin.template.wait_for_ready(template_id, org_id, duration.to_seconds(wait))
|
|
58
58
|
return ret
|
hcs_cli/cmds/vm/delete.py
CHANGED
|
@@ -23,10 +23,11 @@ from hcs_cli.support.param_util import parse_vm_path
|
|
|
23
23
|
|
|
24
24
|
@click.command()
|
|
25
25
|
@click.argument("vm_path", type=str, required=False)
|
|
26
|
+
@cli.force
|
|
26
27
|
@cli.org_id
|
|
27
28
|
@cli.confirm
|
|
28
29
|
@cli.wait
|
|
29
|
-
def delete(vm_path: str, org: str, confirm: bool, wait: str, **kwargs):
|
|
30
|
+
def delete(vm_path: str, org: str, confirm: bool, force: bool, wait: str, **kwargs):
|
|
30
31
|
"""Delete a VM by ID"""
|
|
31
32
|
org_id = cli.get_org_id(org)
|
|
32
33
|
template_id, vm_id = parse_vm_path(vm_path)
|
|
@@ -41,7 +42,7 @@ def delete(vm_path: str, org: str, confirm: bool, wait: str, **kwargs):
|
|
|
41
42
|
if not confirm:
|
|
42
43
|
click.confirm(f"Delete vm {existing['id']} from template {template['name']} ({template['id']})?", abort=True)
|
|
43
44
|
|
|
44
|
-
vm.delete()
|
|
45
|
+
vm.delete(force=force)
|
|
45
46
|
|
|
46
47
|
if wait == "0":
|
|
47
48
|
return
|
hcs_cli/cmds/vm/list.py
CHANGED
|
@@ -47,47 +47,25 @@ from hcs_cli.support.vm_table import format_vm_table
|
|
|
47
47
|
@click.option(
|
|
48
48
|
"--agent",
|
|
49
49
|
"-a",
|
|
50
|
-
type=click.Choice(
|
|
51
|
-
["UNAVAILABLE", "ERROR", "AVAILABLE", "INIT", "UNKNOWN", "DOMAIN_ERR", "CUSTOMIZATION_FAILURE"],
|
|
52
|
-
case_sensitive=False,
|
|
53
|
-
),
|
|
54
50
|
required=False,
|
|
55
|
-
|
|
56
|
-
help="Filter VMs by agent status.",
|
|
51
|
+
help="Filter VMs by agent status, in comma separated values: UNAVAILABLE,ERROR,AVAILABLE,INIT,UNKNOWN,DOMAIN_ERR,CUSTOMIZATION_FAILURE",
|
|
57
52
|
)
|
|
58
53
|
@click.option(
|
|
59
54
|
"--power",
|
|
60
55
|
"-p",
|
|
61
|
-
type=click.Choice(["PoweredOn", "PoweredOff", "PoweringOn", "PoweringOff", "Unknown"], case_sensitive=False),
|
|
62
56
|
required=False,
|
|
63
|
-
|
|
64
|
-
help="Filter VMs by power state.",
|
|
57
|
+
help="Filter VMs by power state, in comman separated values: PoweredOn,PoweredOff,PoweringOn,PoweringOff,Unknown",
|
|
65
58
|
)
|
|
66
59
|
@click.option(
|
|
67
60
|
"--lifecycle",
|
|
68
|
-
type=
|
|
69
|
-
[
|
|
70
|
-
"PROVISIONING",
|
|
71
|
-
"PROVISIONED",
|
|
72
|
-
"MAINTENANCE",
|
|
73
|
-
"DELETING",
|
|
74
|
-
"ERROR",
|
|
75
|
-
"CUSTOMIZING",
|
|
76
|
-
"AGENT_UPDATING",
|
|
77
|
-
"AGENT_REINSTALLING",
|
|
78
|
-
],
|
|
79
|
-
case_sensitive=False,
|
|
80
|
-
),
|
|
61
|
+
type=str,
|
|
81
62
|
required=False,
|
|
82
|
-
|
|
83
|
-
help="Filter VMs by lifecycle status.",
|
|
63
|
+
help="Filter VMs by lifecycle status, in comma separated values: PROVISIONING,PROVISIONED,MAINTENANCE,DELETING,ERROR,CUSTOMIZING,AGENT_UPDATING,AGENT_REINSTALLING",
|
|
84
64
|
)
|
|
85
65
|
@click.option(
|
|
86
66
|
"--session",
|
|
87
|
-
type=click.Choice(["AVAILABLE", "UNAVAILABLE", "DRAINING", "QUIESCING", "REPRISTINING"], case_sensitive=False),
|
|
88
67
|
required=False,
|
|
89
|
-
|
|
90
|
-
help="Filter VMs by power state.",
|
|
68
|
+
help="Filter VMs by session placement status, in comma separated values: AVAILABLE,UNAVAILABLE,DRAINING,QUIESCING,REPRISTINING",
|
|
91
69
|
)
|
|
92
70
|
@cli.formatter(format_vm_table)
|
|
93
71
|
def list_vms(
|
|
@@ -97,33 +75,34 @@ def list_vms(
|
|
|
97
75
|
type: list,
|
|
98
76
|
agent: list,
|
|
99
77
|
power: list,
|
|
100
|
-
lifecycle:
|
|
78
|
+
lifecycle: str,
|
|
101
79
|
session: str,
|
|
102
80
|
**kwargs,
|
|
103
81
|
):
|
|
104
82
|
"""List template VMs"""
|
|
105
83
|
org_id = cli.get_org_id(org)
|
|
106
84
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
85
|
+
filttered_agent_states = _parse_multi_state(agent, "agent")
|
|
86
|
+
filtered_power_states = _parse_multi_state(power, "power")
|
|
87
|
+
filtered_lifecycle_states = _parse_multi_state(lifecycle, "lifecycle")
|
|
88
|
+
filtered_session_states = _parse_multi_state(session, "session")
|
|
110
89
|
|
|
111
90
|
def filter_vm(vm):
|
|
112
|
-
if
|
|
91
|
+
if filttered_agent_states:
|
|
113
92
|
s = vm.get("agentStatus")
|
|
114
|
-
if not s or s.
|
|
93
|
+
if not s or s.upper() not in filttered_agent_states:
|
|
115
94
|
return False
|
|
116
|
-
if
|
|
95
|
+
if filtered_power_states:
|
|
117
96
|
s = vm.get("powerState")
|
|
118
|
-
if not s or s.
|
|
97
|
+
if not s or s.upper() not in filtered_power_states:
|
|
119
98
|
return False
|
|
120
|
-
if
|
|
99
|
+
if filtered_lifecycle_states:
|
|
121
100
|
s = vm.get("lifecycleStatus")
|
|
122
|
-
if not s or s.
|
|
101
|
+
if not s or s.upper() not in filtered_lifecycle_states:
|
|
123
102
|
return False
|
|
124
|
-
if
|
|
103
|
+
if filtered_session_states:
|
|
125
104
|
s = vm.get("sessionPlacementStatus")
|
|
126
|
-
if not s or s.
|
|
105
|
+
if not s or s.upper() not in filtered_session_states:
|
|
127
106
|
return False
|
|
128
107
|
return True
|
|
129
108
|
|
|
@@ -178,6 +157,39 @@ def list_vms(
|
|
|
178
157
|
return vms
|
|
179
158
|
|
|
180
159
|
|
|
160
|
+
def _parse_multi_state(param_list: str, name: str):
|
|
161
|
+
if not param_list:
|
|
162
|
+
return None
|
|
163
|
+
param_list = param_list.upper()
|
|
164
|
+
values = []
|
|
165
|
+
|
|
166
|
+
valid_map = {
|
|
167
|
+
"lifecycle": [
|
|
168
|
+
"PROVISIONING",
|
|
169
|
+
"PROVISIONED",
|
|
170
|
+
"MAINTENANCE",
|
|
171
|
+
"DELETING",
|
|
172
|
+
"ERROR",
|
|
173
|
+
"CUSTOMIZING",
|
|
174
|
+
"AGENT_UPDATING",
|
|
175
|
+
"AGENT_REINSTALLING",
|
|
176
|
+
],
|
|
177
|
+
"agent": ["UNAVAILABLE", "ERROR", "AVAILABLE", "INIT", "UNKNOWN", "DOMAIN_ERR", "CUSTOMIZATION_FAILURE"],
|
|
178
|
+
"power": ["POWEREDON", "POWEREDOFF", "POWERINGON", "POWERINGOFF", "UNKNOWN"],
|
|
179
|
+
"session": ["AVAILABLE", "UNAVAILABLE", "DRAINING", "QUIESCING", "REPRISTINING"],
|
|
180
|
+
}
|
|
181
|
+
if name not in valid_map:
|
|
182
|
+
raise Exception(f"Unknown multi-state filter name: {name}")
|
|
183
|
+
|
|
184
|
+
valid = valid_map[name]
|
|
185
|
+
for s in param_list.split(","):
|
|
186
|
+
s = s.strip()
|
|
187
|
+
if s not in valid:
|
|
188
|
+
raise Exception(f"Invalid {name} value: {s}. Valid values are: {', '.join(valid)}")
|
|
189
|
+
values.append(s)
|
|
190
|
+
return values
|
|
191
|
+
|
|
192
|
+
|
|
181
193
|
def _to_lower(values):
|
|
182
194
|
if values:
|
|
183
195
|
return [v.lower() for v in values]
|
|
@@ -556,7 +556,7 @@ def power_policy_on_template(template: dict, enable: bool, verbose: bool):
|
|
|
556
556
|
patch = calculate_patch(template, allowed_fields, [field])
|
|
557
557
|
for i in range(3):
|
|
558
558
|
try:
|
|
559
|
-
admin.template.
|
|
559
|
+
admin.template.patch(template_id, target_org_id, patch)
|
|
560
560
|
admin.template.wait_for_ready(template_id, target_org_id, 60)
|
|
561
561
|
break
|
|
562
562
|
except Exception as ex:
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
},
|
|
44
44
|
"image": {
|
|
45
45
|
"imageReference": {
|
|
46
|
-
"publisher": "
|
|
47
|
-
"offer": "
|
|
48
|
-
"sku": "
|
|
46
|
+
"publisher": "canonical",
|
|
47
|
+
"offer": "0001-com-ubuntu-server-jammy",
|
|
48
|
+
"sku": "22_04-lts-gen2",
|
|
49
49
|
"version": "latest"
|
|
50
50
|
},
|
|
51
51
|
"os": "linux",
|
|
@@ -61,7 +61,8 @@
|
|
|
61
61
|
},
|
|
62
62
|
"properties": {
|
|
63
63
|
"azureCreateResourceGroup": true,
|
|
64
|
-
"new-task-engine":
|
|
65
|
-
"simulateAgentStatus": "AVAILABLE"
|
|
64
|
+
"new-task-engine": true,
|
|
65
|
+
"simulateAgentStatus": "AVAILABLE",
|
|
66
|
+
"countinuousErrorThreshold": 3
|
|
66
67
|
}
|
|
67
68
|
}
|
hcs_cli/payload/lcm/zero.json
CHANGED
|
@@ -16,4 +16,13 @@ limitations under the License.
|
|
|
16
16
|
# Deprecated.
|
|
17
17
|
# To be removed in the future.
|
|
18
18
|
|
|
19
|
-
from ..template import action
|
|
19
|
+
from ..template import action as action
|
|
20
|
+
from ..template import create as create
|
|
21
|
+
from ..template import delete as delete
|
|
22
|
+
from ..template import get as get
|
|
23
|
+
from ..template import items as items
|
|
24
|
+
from ..template import list as list
|
|
25
|
+
from ..template import patch as patch
|
|
26
|
+
from ..template import wait_for as wait_for
|
|
27
|
+
from ..template import wait_for_deleted as wait_for_deleted
|
|
28
|
+
from ..template import wait_for_ready as wait_for_ready
|
|
@@ -42,3 +42,14 @@ def search(payload: dict, size: int = 100):
|
|
|
42
42
|
pointer_timestamp = max(data["d"]["utcTime"] + 1, pointer_timestamp + 1000)
|
|
43
43
|
|
|
44
44
|
# log.info(f"events={count - _old}")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def aggregateConnects(payload: dict, verbose: bool = False):
|
|
48
|
+
url = "/v1/stats/connect/aggregateConnects"
|
|
49
|
+
if verbose:
|
|
50
|
+
print(f"POST: {url}")
|
|
51
|
+
print(payload)
|
|
52
|
+
response = _client.post(url, json=payload)
|
|
53
|
+
if isinstance(response, str):
|
|
54
|
+
response = json.loads(response)
|
|
55
|
+
return response
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
from .session import assign
|
|
2
|
-
from .
|
|
1
|
+
from .session import assign as assign
|
|
2
|
+
from .session import assignV2 as assignV2
|
|
3
|
+
from .session import create_manual_session as create_manual_session
|
|
4
|
+
from .session import deassign as deassign
|
|
5
|
+
from .session import logoff as logoff
|
|
6
|
+
from .session import logoffV2 as logoffV2
|
|
7
|
+
from .session import sessions as sessions
|
|
8
|
+
from .session import update_session as update_session
|
|
9
|
+
from .vm import count as count
|
|
10
|
+
from .vm import get as get
|
|
11
|
+
from .vm import list as list
|
|
12
|
+
from .vm import raw_list as raw_list
|
|
13
|
+
from .vm import update as update
|
|
14
|
+
from .vm import begin_deleting_vms_by_id as begin_deleting_vms_by_id
|
|
15
|
+
from .vm import finish_deleting_vms as finish_deleting_vms
|
hcs_cli/service/inventory/vm.py
CHANGED
|
@@ -65,6 +65,18 @@ def finish_adding_vms(template_id: str, org_id: str, num_sessions: int, template
|
|
|
65
65
|
return _client.post(url, vms)
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
def begin_deleting_vms_by_id(template_id: str, org_id: str, vm_ids: list, **kwargs):
|
|
69
|
+
url = f"/v1/{template_id}/beginDeletingVMsById?org_id={org_id}"
|
|
70
|
+
url = with_query(url, **kwargs)
|
|
71
|
+
return _client.post(url, json=vm_ids)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def finish_deleting_vms(template_id: str, org_id: str, vm_ids: list, **kwargs):
|
|
75
|
+
url = f"/v1/{template_id}/finishDeletingVMs?org_id={org_id}"
|
|
76
|
+
url = with_query(url, **kwargs)
|
|
77
|
+
return _client.post(url, json=vm_ids)
|
|
78
|
+
|
|
79
|
+
|
|
68
80
|
def count(template_id: str, org_id: str = None, **kwargs):
|
|
69
81
|
url = f"/v1/{template_id}/count"
|
|
70
82
|
kwargs["countVM"] = True
|
hcs_cli/service/lcm/template.py
CHANGED
|
@@ -53,13 +53,16 @@ def create(template: dict):
|
|
|
53
53
|
return _client.post(url=url, json=template)
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
def patch(id: str, org_id: str, patch_to: dict, **kwargs):
|
|
57
|
+
url = f"/v1/templates/{id}?org_id={org_id}"
|
|
58
|
+
# print(url)
|
|
59
|
+
# import json
|
|
60
|
+
# print(json.dumps(patch_to))
|
|
61
|
+
return _client.patch(url, json=patch_to)
|
|
62
|
+
|
|
63
|
+
|
|
56
64
|
def update(template: dict):
|
|
57
|
-
url = "/v1/templates"
|
|
58
|
-
# workaround for AKKA
|
|
59
|
-
if template["providerType"] == "AKKA":
|
|
60
|
-
pass
|
|
61
|
-
else:
|
|
62
|
-
url += "/" + template["providerType"].lower()
|
|
65
|
+
url = "/v1/templates/" + template["providerType"].lower()
|
|
63
66
|
return _client.post(url=url, json=template)
|
|
64
67
|
|
|
65
68
|
|
hcs_cli/service/template.py
CHANGED
|
@@ -32,7 +32,7 @@ def delete(id: str, org_id: str, force: bool = True):
|
|
|
32
32
|
return _crud.delete(id, org_id, force=force)
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
def
|
|
35
|
+
def patch(id: str, org_id: str, patch_to: dict):
|
|
36
36
|
url = f"/v2/templates/{id}?org_id={org_id}"
|
|
37
37
|
# print(url)
|
|
38
38
|
# import json
|
hcs_cli/support/vm_table.py
CHANGED
|
@@ -46,8 +46,8 @@ def format_vm_table(data):
|
|
|
46
46
|
"agentStatus",
|
|
47
47
|
{
|
|
48
48
|
"AVAILABLE": "green",
|
|
49
|
-
"ERROR": lambda d: "bright_black" if d
|
|
50
|
-
"UNAVAILABLE": lambda d: "bright_black" if d
|
|
49
|
+
"ERROR": lambda d: "bright_black" if d.get("powerState") != "PoweredOn" else "red",
|
|
50
|
+
"UNAVAILABLE": lambda d: "bright_black" if d.get("powerState") != "PoweredOn" else "red",
|
|
51
51
|
},
|
|
52
52
|
)
|
|
53
53
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hcs-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.321
|
|
4
4
|
Summary: Horizon Cloud Service CLI.
|
|
5
5
|
Project-URL: Homepage, https://github.com/euc-eng/hcs-cli
|
|
6
6
|
Project-URL: Bug Tracker, https://github.com/euc-eng/hcs-cli/issues
|
|
@@ -14,7 +14,7 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Requires-Python: >=3.9
|
|
17
|
-
Requires-Dist: hcs-core>=0.1.
|
|
17
|
+
Requires-Dist: hcs-core>=0.1.321
|
|
18
18
|
Requires-Dist: inquirerpy>=0.3.4
|
|
19
19
|
Requires-Dist: matplotlib>=3.8.0
|
|
20
20
|
Requires-Dist: paho-mqtt>=2.1.0
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
hcs_cli/__init__.py,sha256=
|
|
1
|
+
hcs_cli/__init__.py,sha256=dX6e1kri6Gcqjvlr5u1l5USUlOgjbOKPHS5vP_FG78Y,72
|
|
2
2
|
hcs_cli/__main__.py,sha256=lwPXLjh1OpOs4doVLJJ6_3XHtC-VqDOXiw45hvAQorM,684
|
|
3
3
|
hcs_cli/main.py,sha256=0NmRcidxNxtJatS_prEKQ4_6bqu-l8UkLhAPOXW3uyc,3537
|
|
4
4
|
hcs_cli/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -7,7 +7,7 @@ hcs_cli/cmds/inspect.py,sha256=QBhBOkf2mHlGhgAhY9FXCfvViL2p4D3BudoKjyADdfE,659
|
|
|
7
7
|
hcs_cli/cmds/login.py,sha256=dj42jDrKktt4bUqSD0Xj6Jo9ZSI7M9v9R280YavWpuc,11165
|
|
8
8
|
hcs_cli/cmds/logout.py,sha256=BxU-K1cIkdBpAAp6SGuwEqECL6g20l9CqEcSX-3pZag,744
|
|
9
9
|
hcs_cli/cmds/query.py,sha256=hh1TVeSkvRiB07fqIA3GGpEBtP3XMz5XCmAGTXD7FOM,9302
|
|
10
|
-
hcs_cli/cmds/task.py,sha256=
|
|
10
|
+
hcs_cli/cmds/task.py,sha256=YIZUjDzHZaNCbmAt589Nzp8s7NMsBI7w_a33l109iy8,19564
|
|
11
11
|
hcs_cli/cmds/test.py,sha256=Kkpe3wV3ViRRAKeMO5IBwjTysEsKzZXP46OXNb-GhxE,1309
|
|
12
12
|
hcs_cli/cmds/upgrade.py,sha256=iJYSyxyNBhiss0u605nD6jpYUdoDhjfIeJP98zSeDf4,931
|
|
13
13
|
hcs_cli/cmds/ad/__init__.py,sha256=wC4uftNZRN3bo9SrRHNNE1tzE0x3B1mCXcIzARm73gI,636
|
|
@@ -73,7 +73,7 @@ hcs_cli/cmds/dev/onboard.py,sha256=7guWRWbJIDOBiDMdWghAilyERmxQY3HCdt6atnauYXA,1
|
|
|
73
73
|
hcs_cli/cmds/dev/test.py,sha256=VP-I-H3MdS1j8FaTiZclQt4HCLUPmiXg__4cn1smgM8,976
|
|
74
74
|
hcs_cli/cmds/dev/fs/__init__.py,sha256=8hlQwsU-qFh1L2TmyQ9gokur7vxjCl1fwChEbkK8cgg,633
|
|
75
75
|
hcs_cli/cmds/dev/fs/auth.py,sha256=GsjT-ATwD_G_BUma0PK114KME3RnF_lDKHB0HrjGQKs,909
|
|
76
|
-
hcs_cli/cmds/dev/fs/clear.py,sha256=
|
|
76
|
+
hcs_cli/cmds/dev/fs/clear.py,sha256=G3Dk2HjBd5dS7jCz5CYeuqya2I5VoChjY8oguuHemis,3965
|
|
77
77
|
hcs_cli/cmds/dev/fs/init.py,sha256=0ogDcipzMiGPa2IKz5V43Rec3vqjh-wHxv30NoysGpE,39199
|
|
78
78
|
hcs_cli/cmds/dev/fs/profiler.py,sha256=3IPhiCsYebVKaqvmXUocNJXQAX4yQBjxQWPxrRriaRE,3564
|
|
79
79
|
hcs_cli/cmds/dev/fs/tailor.py,sha256=ehTR5GsXKdB_8X3YDQWN-0Xq_rdC0ZilB2LHJ0BLuyc,6969
|
|
@@ -89,7 +89,7 @@ hcs_cli/cmds/dev/fs/provided_files/__init__.py,sha256=AC-hl0F-5R4V2uejk5FzFDlvT7
|
|
|
89
89
|
hcs_cli/cmds/dev/fs/provided_files/akka.plan.yml,sha256=IBBuxU-oxiFfEMhpOB7uK9IMoHsRVwlcnKwPPfbPnyw,12486
|
|
90
90
|
hcs_cli/cmds/dev/fs/provided_files/azsim.plan.yml,sha256=rnjNWSnhaYr19tlKoxGjvKTlhs2pYA2NRC-dC3kIzYE,17220
|
|
91
91
|
hcs_cli/cmds/dev/fs/provided_files/azure.plan.yml,sha256=4-ghUgskCyeM-G0kvWb_AW1ywlN9wKN_kC3XSWfryY8,31561
|
|
92
|
-
hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml,sha256=
|
|
92
|
+
hcs_cli/cmds/dev/fs/provided_files/mqtt-secret.yaml,sha256=lJI6N4e3ogiZ9BpyjWUHqj3KfbGs7WUdYuaPt1D8TLw,14939
|
|
93
93
|
hcs_cli/cmds/dev/fs/provided_files/mqtt-server-external.yaml,sha256=gtYLY9pgMCeJthYmTXrLjd3xITf4b2keesyQ8VBAar8,612
|
|
94
94
|
hcs_cli/cmds/dev/fs/provided_files/patch-mqtt-hostname.yml,sha256=YuwUPj5QtZo1dKOqNsh72EVXdVBxr2ZQBcW4gyX0agY,212
|
|
95
95
|
hcs_cli/cmds/dev/fs/provided_files/patch-vernemq-ssl-depth.json,sha256=jDuQLeen8aJ656gfJhk16aGyUCbOLt7VJq9AuUezNE4,441
|
|
@@ -116,6 +116,7 @@ hcs_cli/cmds/hoc/connect.py,sha256=GvXfbB1JhAZRnl1_H1oxCAhAMCP9jtJgAlhVy9ggYNc,5
|
|
|
116
116
|
hcs_cli/cmds/hoc/oncall.py,sha256=yc7s94Ti21QDm6WZAbuzB21GsGwced5jLrfmvkV8J2c,575
|
|
117
117
|
hcs_cli/cmds/hoc/org.py,sha256=fi2rjO4hLuJuLSinWG3s8-dTdAj9EIrIFcN82LM8mtI,570
|
|
118
118
|
hcs_cli/cmds/hoc/search.py,sha256=yQk1BTp6sSPer8YdCqNd458CpwuJ5PM50_3yjwv8T7g,5447
|
|
119
|
+
hcs_cli/cmds/hoc/stats.py,sha256=QEnAULDIhvsEgMLJg4Ql9cI6wUqd0zQW2QjwBWwXdno,2641
|
|
119
120
|
hcs_cli/cmds/hoc/template.py,sha256=M9bPYDuPfYQjjR8SYS4r4NknckSAfrMJGW6GeczCZvw,574
|
|
120
121
|
hcs_cli/cmds/hoc/vm.py,sha256=YjijTxpSbnUKyCtsc9wIYDYZULM4RKo2JfROdilmNvk,664
|
|
121
122
|
hcs_cli/cmds/hoc/util/__init__.py,sha256=AC-hl0F-5R4V2uejk5FzFDlvT7uKGfjQyWq0quSznQs,14
|
|
@@ -150,6 +151,7 @@ hcs_cli/cmds/inventory/__init__.py,sha256=MHbL9kVMQm--omd6_50d48o9Ff8vlQ9JWXEtW0
|
|
|
150
151
|
hcs_cli/cmds/inventory/assign.py,sha256=ijZna58rMq1JLUytb6EyuSqd5CLZrqehfEpTqxKEfYs,4923
|
|
151
152
|
hcs_cli/cmds/inventory/count.py,sha256=AR_9HyO4hMLJp1FhrX4RTbpqF2aLWjiyKASdBi5kfjE,401
|
|
152
153
|
hcs_cli/cmds/inventory/deassign.py,sha256=Nwo3dct1FtVUel6TVG8sQzGL6qYR3yqx3q-WfMgZ_GI,2272
|
|
154
|
+
hcs_cli/cmds/inventory/delete.py,sha256=wwZGmO0nQnXINR0DjuRkpaBkJC9d5MrusLfiUBbh3-k,1679
|
|
153
155
|
hcs_cli/cmds/inventory/get.py,sha256=EpGoHzNA9taubw5ohkoj6bsQQVz2nBn8z05i5vKzH58,1072
|
|
154
156
|
hcs_cli/cmds/inventory/list.py,sha256=Cmm7uhNSsBJVgXqEFuPlTrKMe6yCZU1GLWU4BnFtgZo,3602
|
|
155
157
|
hcs_cli/cmds/inventory/logoff.py,sha256=EUE_RcEnnFhgtBePXcP-CerRHgFfzTqItrCddUVyJTc,4137
|
|
@@ -162,7 +164,7 @@ hcs_cli/cmds/lcm/health.py,sha256=aAnNKPQSdV1rezwMdXqVF9sG_n8ajoa8eggwTOJje-4,78
|
|
|
162
164
|
hcs_cli/cmds/lcm/register.py,sha256=BO7UtE-3xIuwDMd0Go2SXln-YdQAYZJJfRAGAJDSWM8,1664
|
|
163
165
|
hcs_cli/cmds/lcm/test.py,sha256=QV5FN6Xy1ka0GplPtXit3czn5HhEiv0HPt6SFwLL7tM,936
|
|
164
166
|
hcs_cli/cmds/lcm/provider/__init__.py,sha256=PZyypOINS42FE9UF6HUzL4p-5OhlfmemR96f7HykaHE,628
|
|
165
|
-
hcs_cli/cmds/lcm/provider/create.py,sha256=
|
|
167
|
+
hcs_cli/cmds/lcm/provider/create.py,sha256=_KhSkng3R0V1H594CFA-qpR6GPIYSlGXKUAZsRqATl4,3677
|
|
166
168
|
hcs_cli/cmds/lcm/provider/delete.py,sha256=jBHBHX7AV1X2jM4WXzCrL84jlyhgWdVtjOLmbbGahvc,1002
|
|
167
169
|
hcs_cli/cmds/lcm/provider/get.py,sha256=6CFNWM8RWXS2eR6G6Xas4Md9qSchbEhb9WLD85YxVbE,921
|
|
168
170
|
hcs_cli/cmds/lcm/provider/list.py,sha256=b4HWh_ZMj7HqqR2lOQLUoKlpt13TdwGpQFYbp0Inb8U,1076
|
|
@@ -170,6 +172,7 @@ hcs_cli/cmds/lcm/template/__init__.py,sha256=0MLiuwktWNE_kV36BGSXEv8jAUZQCLHWpfm
|
|
|
170
172
|
hcs_cli/cmds/lcm/template/cancel.py,sha256=EKjL_EoSem6NNxwB-uDTfvTY-Z3Fh4E-OEUpsm7zCIM,1061
|
|
171
173
|
hcs_cli/cmds/lcm/template/create.py,sha256=fvg9yCkST4JpYCbtX5hOas0rPEQL1XkpsKOEM4lrj34,2692
|
|
172
174
|
hcs_cli/cmds/lcm/template/delete.py,sha256=_lf7gEJFvrdc1_U18_-URvPiXURbw88YxU9eEZ_RLFE,1336
|
|
175
|
+
hcs_cli/cmds/lcm/template/expand.py,sha256=zF5aR6igfQEH8m0QVF_HkIO__HrxYSMk7g4S7eqLiCg,1314
|
|
173
176
|
hcs_cli/cmds/lcm/template/get.py,sha256=siSdvS_KEVIIcRSHFgMs3R2MFbdl1f9-yeVmQiZtlZ8,1048
|
|
174
177
|
hcs_cli/cmds/lcm/template/health.py,sha256=PPXO5-8Vytj7WUgsRVQ05VipC2hdlQXlbxRec1HeOWQ,1428
|
|
175
178
|
hcs_cli/cmds/lcm/template/list.py,sha256=tjupel3IZKkBrvy75czB32wUU5hV70SHZwy9L7AFHPc,3203
|
|
@@ -179,7 +182,7 @@ hcs_cli/cmds/lcm/template/update.py,sha256=B4HTlXt-EfOtsIKOChoY5ZX6PWY72wNunk25S
|
|
|
179
182
|
hcs_cli/cmds/lcm/template/use.py,sha256=E9fQgdAYri9FJwRtIJvSw3hQBSjSaMSLtFrY1fF0sF4,1459
|
|
180
183
|
hcs_cli/cmds/lcm/template/wait.py,sha256=nAfeu6v-hPSK96Ov2-zzczOXgBTfKHA-ho4XycnsBV4,2638
|
|
181
184
|
hcs_cli/cmds/lcm/vm/__init__.py,sha256=SflvFQtT5sCprl6RtseVMrFuOyYHOkZf83AsvdUEFqs,622
|
|
182
|
-
hcs_cli/cmds/lcm/vm/delete.py,sha256=
|
|
185
|
+
hcs_cli/cmds/lcm/vm/delete.py,sha256=qx3swt_Ro5ALojQbFC30cdait455EbBU9zOC6s-92vM,1386
|
|
183
186
|
hcs_cli/cmds/lcm/vm/get.py,sha256=CVByeki8devUWLs9X41PIQhnOQBkCQ5OckYZxioRrds,1081
|
|
184
187
|
hcs_cli/cmds/lcm/vm/pair.py,sha256=4TMs9VjWa_X6ph-tqI3rF6lDo5NL3BhhJQpLFcWgegE,1060
|
|
185
188
|
hcs_cli/cmds/lcm/vm/pairing_info.py,sha256=HPAXZM2MZrdmmJt74yJR7S7PmM0F3hkBAfHCjoxI58k,1200
|
|
@@ -261,12 +264,12 @@ hcs_cli/cmds/synt/report/list.py,sha256=vk0A-rNPWakKLfuzp3TzTLn47dcMDjAKuujRdaq5
|
|
|
261
264
|
hcs_cli/cmds/template/__init__.py,sha256=0MLiuwktWNE_kV36BGSXEv8jAUZQCLHWpfmRvu-IHCU,628
|
|
262
265
|
hcs_cli/cmds/template/create.py,sha256=LBK0ijSeAS2PECR81FGRAlh9Zu6kxQQw6173Kxqkd8E,1909
|
|
263
266
|
hcs_cli/cmds/template/delete.py,sha256=GSxtTKqe0DSE6FNt20FMGwFlTKNvygMDTTnxHPwBiRM,1330
|
|
264
|
-
hcs_cli/cmds/template/expand.py,sha256=
|
|
267
|
+
hcs_cli/cmds/template/expand.py,sha256=ewdKhhkheB73RD6Z4-bClNxK9NPRBGjXtP92jwxNV7E,3556
|
|
265
268
|
hcs_cli/cmds/template/fix.py,sha256=aMRamRlJHS1ARseU3MKVRft0ilnbN-vtjO8Ia2S8TA4,2813
|
|
266
269
|
hcs_cli/cmds/template/get.py,sha256=M-GSJfsV9RWyFomQdwtkB7_Ga52G8TXlcNseo4crolQ,1017
|
|
267
270
|
hcs_cli/cmds/template/list.py,sha256=106v3Ng-n7AlvSvVa7GYxQQmY7R1qBfP45XnjDTa8Ko,3526
|
|
268
271
|
hcs_cli/cmds/template/list_usage.py,sha256=eVszi1XPLCshLTx9SlaJYsF5d_6MrAflkAqdIS5gP2M,4337
|
|
269
|
-
hcs_cli/cmds/template/update.py,sha256=
|
|
272
|
+
hcs_cli/cmds/template/update.py,sha256=R28_4ElCaAPLuCh6GDWBYtHs6-3ARBb-FLxb1jXyNl0,1832
|
|
270
273
|
hcs_cli/cmds/template/usage.py,sha256=AfhgBpJqVhqi3u3_jjvjQjbUW4Kav6VSRatEEEhf3Q8,9373
|
|
271
274
|
hcs_cli/cmds/template/use.py,sha256=GhWA8N9nUiVJeU-Qco8Rl_g8xO_0uGDNTmJAUMK6H-4,1462
|
|
272
275
|
hcs_cli/cmds/template/wait.py,sha256=YE1-Sbi-4olFk7GNCUmwE1UDFtjey880TeTaGdsGeIs,2459
|
|
@@ -276,9 +279,9 @@ hcs_cli/cmds/uag/get.py,sha256=mLBOvpVjnJj6BWtl_0u9j4aUJcF_KQMKvuxwd18gSl8,992
|
|
|
276
279
|
hcs_cli/cmds/uag/list.py,sha256=h-iEEzpSufqGrBNVUKciMW5kot82URqe3724z3Vz87w,947
|
|
277
280
|
hcs_cli/cmds/vm/__init__.py,sha256=SflvFQtT5sCprl6RtseVMrFuOyYHOkZf83AsvdUEFqs,622
|
|
278
281
|
hcs_cli/cmds/vm/actions.py,sha256=anZZ0iWNyN_STOIgJ-q3iYUkTfjEJe5_yrMWYAgRAzg,3921
|
|
279
|
-
hcs_cli/cmds/vm/delete.py,sha256=
|
|
282
|
+
hcs_cli/cmds/vm/delete.py,sha256=_BRnmWnQqSN4fg2zOMVGJOEz162UMj0S-kRsk6EQf8c,1488
|
|
280
283
|
hcs_cli/cmds/vm/get.py,sha256=CblKzcYwufBXYwX6h1jcui6DF_cE0xjbHiJXv-PDcyo,1037
|
|
281
|
-
hcs_cli/cmds/vm/list.py,sha256=
|
|
284
|
+
hcs_cli/cmds/vm/list.py,sha256=_WMAn4bQVpdnQUP76FlqRx6Y8Y5rYDRpQ1U_WNUTGF8,6598
|
|
282
285
|
hcs_cli/cmds/vm/pairing_info.py,sha256=6ahK0tINjhyZVeFgSe5jbUITF8F9mUsdvMftIOTT9bI,1177
|
|
283
286
|
hcs_cli/cmds/vm/put.py,sha256=mHrv4niFLLW9ENQFznaTd_Jmwms0DAoIKKlOF-GjBSQ,1199
|
|
284
287
|
hcs_cli/cmds/vm/use.py,sha256=P3jnw5l42rrx7RB0iAWvINbq9XUwsHNn8n5wL_I3CvU,1830
|
|
@@ -292,7 +295,7 @@ hcs_cli/cmds/vmm/__init__.py,sha256=jTmyoqXOsPaSLNirVYvb4l_Pc2Qn9OgpMVFI21YuBNo,
|
|
|
292
295
|
hcs_cli/cmds/vmm/restart_vms.py,sha256=n9FzXBMMigVO55Bl1e6kJBILa9o_PfJ8JGDmJvxEgfk,3278
|
|
293
296
|
hcs_cli/cmds/vmm/rootca_edge_migration_stats.py,sha256=Oe9YBsHCtp_V7tmMVN1M9KdGHDxafE63n-PC-uKq8Uc,27166
|
|
294
297
|
hcs_cli/cmds/vmm/rootca_edge_rotate_certs.py,sha256=KUq4CwgemWyPtJa4ys_d-khZdFmBqKcKvMDA3_VBRkc,12680
|
|
295
|
-
hcs_cli/cmds/vmm/rootca_migrate.py,sha256=
|
|
298
|
+
hcs_cli/cmds/vmm/rootca_migrate.py,sha256=3bJ_FrbqDh3dwzHq1gB0prjmThQ04d3bR8BZQzLaFqU,37981
|
|
296
299
|
hcs_cli/cmds/vmm/rootca_migrate_edge.py,sha256=6r1HvPYaBLfNogCmRbKVCdFlF9hy_DpAtE1Iag2y4ok,18625
|
|
297
300
|
hcs_cli/cmds/vmm/rootca_template_migration_stats.py,sha256=npVzjNpsJpTEG-ax5seSIluz-70Fb0pSiDKNcubB53Y,9376
|
|
298
301
|
hcs_cli/cmds/workflows/__init__.py,sha256=GIkOdlgxB8z97dAhJvlHHaaM9Ey5cH6b-eNAsz6M7oM,650
|
|
@@ -314,8 +317,7 @@ hcs_cli/payload/inventory/deassign.json,sha256=evl-Nt-6Sc4Mm-F9YS734H1x0aIrf7N3W
|
|
|
314
317
|
hcs_cli/payload/iss/__init__.py,sha256=4kFVMPKtDxlxFWs6qXrhBJjgEJesuGTCjBBm2a4JsBM,600
|
|
315
318
|
hcs_cli/payload/lcm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
316
319
|
hcs_cli/payload/lcm/akka.json,sha256=_PUNdUO2CFj5AimOWkgc1zvVxy1hrWNq99YHYP3hxhA,673
|
|
317
|
-
hcs_cli/payload/lcm/azure-dummy
|
|
318
|
-
hcs_cli/payload/lcm/azure-dummy.json,sha256=CgIK9bGH4nmUfZoHxbAypIYpFQyrzGMUQ50cRUODFVQ,1563
|
|
320
|
+
hcs_cli/payload/lcm/azure-dummy.json,sha256=fu4hSSGBSoKZD6kHPm62TQ3xSTFhCCD7-NRkDMRHTSI,1619
|
|
319
321
|
hcs_cli/payload/lcm/azure-real.json,sha256=QF9TdNKdLQRWjDC610LbU1-DWzxbncTBu0MEUPIiVxI,1561
|
|
320
322
|
hcs_cli/payload/lcm/edge-proxy.json,sha256=PAlwNpkN9HJ-PZ5PEMM8sc_O_eSABcyktAiOoohlTQk,744
|
|
321
323
|
hcs_cli/payload/lcm/zero-dedicated.json,sha256=U8n2KPjPNLMe0ywyfbpu5gRwYI03CexidJrX_gTMCog,782
|
|
@@ -328,16 +330,16 @@ hcs_cli/payload/lcm/zero-fail-prepare.json,sha256=p3uVwSGTwXC6iXhsH66fFjiG6vJeK-
|
|
|
328
330
|
hcs_cli/payload/lcm/zero-fail-vm-onthread.json,sha256=vty-OqyRhtItWNj1opWfQwL5HK75KTmjg0uFxnAF5yk,1307
|
|
329
331
|
hcs_cli/payload/lcm/zero-fail-vm.json,sha256=VSFgt4dAlRu52uz5BZmavvkr1kBarOt2d345AtA00xw,1307
|
|
330
332
|
hcs_cli/payload/lcm/zero-floating.json,sha256=8fO_5C3eNoBlI8RD8cZPP_XB6ZJeyq_U-7Nw8A8bHO0,780
|
|
333
|
+
hcs_cli/payload/lcm/zero-legacy.json,sha256=E3hA0bCnQx29mQQFtjdKuC2R_-IqaPDGItcL6WPugf4,886
|
|
331
334
|
hcs_cli/payload/lcm/zero-manual.json,sha256=SLez__1qO1eMLZW-9GOnxEXTWrfd5TQFmNCb-J9SGEI,741
|
|
332
335
|
hcs_cli/payload/lcm/zero-multisession.json,sha256=OtB7KC5VlrQvWRjtiYQijTwu-jjtoCcaGFQmVBijerM,788
|
|
333
336
|
hcs_cli/payload/lcm/zero-nanw.json,sha256=ALsXhqTeUN8q4xqiDgWk3RiWZXVUVyyrrUj14_lFisE,720
|
|
334
337
|
hcs_cli/payload/lcm/zero-new-5k-delay.json,sha256=UOh6E0FUks6Ozo0EjjhCAjhD7R7gyKdT2sTEhMy9DcY,1571
|
|
335
338
|
hcs_cli/payload/lcm/zero-new-5k.json,sha256=fgiZbLr2cPoLCfLdn2uNFp_GxROHIiadUlbhDqEbESQ,828
|
|
336
339
|
hcs_cli/payload/lcm/zero-new-snapshot.json,sha256=E3hA0bCnQx29mQQFtjdKuC2R_-IqaPDGItcL6WPugf4,886
|
|
337
|
-
hcs_cli/payload/lcm/zero-new.json,sha256=E3hA0bCnQx29mQQFtjdKuC2R_-IqaPDGItcL6WPugf4,886
|
|
338
340
|
hcs_cli/payload/lcm/zero-reuse-vm-id.json,sha256=WWbPUijukAaS1ADz8AnEhU5U0s6qKUdbBU1v29HbhS4,716
|
|
339
341
|
hcs_cli/payload/lcm/zero-with-max-id-offset.json,sha256=fo6JO-QHV7ln8rKswhhLZ67v_9skeW1HwZXgaNzPsuc,698
|
|
340
|
-
hcs_cli/payload/lcm/zero.json,sha256=
|
|
342
|
+
hcs_cli/payload/lcm/zero.json,sha256=sS5X5FPkU0mSO-PeGPcJobFoxtC2FJFznqPuXq6ZmW4,1388
|
|
341
343
|
hcs_cli/payload/provider/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
342
344
|
hcs_cli/payload/provider/ad-stes-vsphere.json,sha256=GgjpDxQY4X_fQNY46-fls0248nuhEgPu6qOcA9MbI0Y,717
|
|
343
345
|
hcs_cli/payload/provider/akka.json,sha256=pKRZT9aOx0irx-28iUFNNwdQ-s1sNgVPCMz7RdASKTM,284
|
|
@@ -397,7 +399,7 @@ hcs_cli/service/graphql.py,sha256=Vqt4wMeRSPV_2YhGvb9vs0vlac0_fMAhg1BijKX6reg,46
|
|
|
397
399
|
hcs_cli/service/pool.py,sha256=EjTENTX5wSZ-YhP8ON_tonB54-OhjWCluzIHVR7ed04,1266
|
|
398
400
|
hcs_cli/service/site.py,sha256=th23Ucm8HgU96Rbt2m8ww2YrISj2Oksojc4atkdjRNM,1568
|
|
399
401
|
hcs_cli/service/task.py,sha256=qqAQPqIS66cBp-f_4zsLm2-iEsWwB6rkBgczDVAlo-Y,9565
|
|
400
|
-
hcs_cli/service/template.py,sha256=
|
|
402
|
+
hcs_cli/service/template.py,sha256=pCHmMX8zSdq0RX7bCftVog0_hNQU5gIe2o0FevxpKeg,2796
|
|
401
403
|
hcs_cli/service/uag.py,sha256=5TMt6lqxMVOlp6d49aOZsKFfcgGRdE03Ew4yVWwbw7Q,3747
|
|
402
404
|
hcs_cli/service/vm.py,sha256=9yfG_B8omd6lkXEvLbOd1tpFc_j-P40Y5aZG-_-TeC4,5398
|
|
403
405
|
hcs_cli/service/admin/__init__.py,sha256=ASx6VsdgNleP9frkrKadkEg1G2NS0FyC0pAUN2ivssg,88
|
|
@@ -406,7 +408,7 @@ hcs_cli/service/admin/azure_infra.py,sha256=8fSP-CozFZKLL_sVHux-ivrM04xab3zYtAcc
|
|
|
406
408
|
hcs_cli/service/admin/edge.py,sha256=G39cHLPI5fUyWtn1cYVzKlpM29ftO-HTvvpPPzOKUv4,2177
|
|
407
409
|
hcs_cli/service/admin/helper.py,sha256=jjdqy6GMS4aZO9JO0LyWmL0_x02yarNtJCL8a41qSeY,1329
|
|
408
410
|
hcs_cli/service/admin/provider.py,sha256=XgZJ8mAb0dkHloOEuLAU1ST0h_bXNEWVZCEuOpxCoCg,1886
|
|
409
|
-
hcs_cli/service/admin/template.py,sha256=
|
|
411
|
+
hcs_cli/service/admin/template.py,sha256=EPtQ7BKUJyDJ0r8ZuY0_Y6khSpP_xVmcnITvH62e5DI,1072
|
|
410
412
|
hcs_cli/service/admin/uag.py,sha256=9NA6wB-yoPz0SSmY-fubQHWyoraFeZFTuSMjR4LJHLc,1852
|
|
411
413
|
hcs_cli/service/admin/vm.py,sha256=qm3C8pkj5MksKVuJcG-lbLVWJ1JyvaZRlCqGpH_y1fE,672
|
|
412
414
|
hcs_cli/service/app_management/__init__.py,sha256=61iK5J3VA_Zaro5NoORIax1-Iqyjx02CfGLl7Ofa1Uw,25
|
|
@@ -431,7 +433,7 @@ hcs_cli/service/edgehub/__init__.py,sha256=ZKX6VVPT3DdiC--uWzA6pKlQ1TsrxoxtCVjng
|
|
|
431
433
|
hcs_cli/service/edgehub/edgecontroller.py,sha256=hc5ps1OWrw8cZiUiU27A2tkpxvgC9FATGGE0FkhS33M,1402
|
|
432
434
|
hcs_cli/service/edgehub/edgetwin.py,sha256=_Z4tSop2l_17-_hsDtljLosintKccwDeFEAkjt8ZqyQ,959
|
|
433
435
|
hcs_cli/service/hoc/__init__.py,sha256=fHFaB2296HgzIKwMPkB9BDxezIYI6M4OD-woPsrtOts,48
|
|
434
|
-
hcs_cli/service/hoc/diagnostic.py,sha256=
|
|
436
|
+
hcs_cli/service/hoc/diagnostic.py,sha256=3sS1Saydsy-kYuF4IQMlz4scv1O4nMjnHOM7Trqh9cY,1465
|
|
435
437
|
hcs_cli/service/hoc/es.py,sha256=XCeYuhGMJE89uRiH49lolCnNWMEi0Ec7VRhxKbEvAO4,3491
|
|
436
438
|
hcs_cli/service/ims/__init__.py,sha256=CTtPWRJqthcWW7jMyqD-4fP09xSGEfVEj75GbrtyDsA,86
|
|
437
439
|
hcs_cli/service/ims/gold_pattern.py,sha256=HAnKOHBlyoCTzpUP4H5NsqpMPX4tYKiQdtdA9yYr-CM,3160
|
|
@@ -439,15 +441,15 @@ hcs_cli/service/ims/helper.py,sha256=0LgnJAE8W3_yGG3qG1Y6DMs7VUHHhKcrjRR2Ap8cNN8
|
|
|
439
441
|
hcs_cli/service/ims/image_copies.py,sha256=zBZbFZS0jr9Ew9KanLc10qwHnV8iy0UdU9aFYum3Jw0,968
|
|
440
442
|
hcs_cli/service/ims/images.py,sha256=FIuasv4fj4EZFVF7_BFfWW7JutZO8cr6X1h5LCb0qs4,2059
|
|
441
443
|
hcs_cli/service/ims/version.py,sha256=xcsb5-YvGY3duZk0wHdVPmuJjyVf01dg26VGgBQaQxY,3330
|
|
442
|
-
hcs_cli/service/inventory/__init__.py,sha256=
|
|
444
|
+
hcs_cli/service/inventory/__init__.py,sha256=Y8pcgMOA60I3b4RjLBrLcT5zRs5rgSP5URIjL-x0nxI,651
|
|
443
445
|
hcs_cli/service/inventory/session.py,sha256=VB9oCC297UmmymJ1cnbtdZoLklyi0GtjuKNnPAb5zEQ,2240
|
|
444
|
-
hcs_cli/service/inventory/vm.py,sha256=
|
|
446
|
+
hcs_cli/service/inventory/vm.py,sha256=xktEVwelVGVBNOuUtq_rPQl356pwvUt7Je_6OsPyJDo,2936
|
|
445
447
|
hcs_cli/service/iss/__init__.py,sha256=LBifjQWYf4lqZWWdKk7wfB5F4HrqD4qpu9q-iLxVtK0,631
|
|
446
448
|
hcs_cli/service/iss/mqtt.py,sha256=MS7KalunXez2sRozlH47eUPuXoKqU0Ib2QOWpcLb_g4,2142
|
|
447
449
|
hcs_cli/service/lcm/__init__.py,sha256=twzd41c4kLiR5mkNlsq5GNJxRE5CUG6vKlAg3qYWoL8,45
|
|
448
450
|
hcs_cli/service/lcm/health.py,sha256=XHa7bmctKmjuSERxEhmNF4BbcwS4XOfjcxJU2dy9udQ,1069
|
|
449
451
|
hcs_cli/service/lcm/provider.py,sha256=rwA7qoN_MGqV93TJ1-i76BuucdvXyH0DQKnoGbc6HAE,1283
|
|
450
|
-
hcs_cli/service/lcm/template.py,sha256=
|
|
452
|
+
hcs_cli/service/lcm/template.py,sha256=phSrxGQn21ZYrRpTw-IdTkN-AfkhlXWDebfHMtpNJds,4330
|
|
451
453
|
hcs_cli/service/lcm/vm.py,sha256=L75cvPYK4J_CAtTYP076q4LN2zZyJHQ8w54NfPIlsqQ,3808
|
|
452
454
|
hcs_cli/service/org_service/__init__.py,sha256=akNxzmiw970PHGDLHiJjcYZnbtbGCpVFVNzXfUVbwIY,54
|
|
453
455
|
hcs_cli/service/org_service/datacenter.py,sha256=XN0uv2qSLQg6kUPo9Jioz9vSr7aFYr4anQ7YgT67mWA,1182
|
|
@@ -489,11 +491,11 @@ hcs_cli/support/template_util.py,sha256=tfQuXIo-j9XYysXTaKCaBs4GF5UHxR9TOKFRF5G-
|
|
|
489
491
|
hcs_cli/support/test_utils.py,sha256=uMiWOOgYSP7HAOPECam57EJjenrSG_2HvtxO4uzC4K0,5680
|
|
490
492
|
hcs_cli/support/test_utils2.py,sha256=g321d4lNbJfy8VaSfwWjlj4_ZJe9NW6B16S8GOT3rEw,18961
|
|
491
493
|
hcs_cli/support/use_util.py,sha256=QBrcNIW-k0g41euTc7-oU1WKEmACJx3YGQflyC3YeFs,2970
|
|
492
|
-
hcs_cli/support/vm_table.py,sha256=
|
|
494
|
+
hcs_cli/support/vm_table.py,sha256=hqNUKLVUuBiuDwlqcAQ7uAT1-4z6ZYOIGRcFWn8lnAo,2329
|
|
493
495
|
hcs_cli/support/scm/html_util.py,sha256=clgMpM90HxRRs3D9ORYYNB57AYh7y_-UzJrB4KX3dsY,458
|
|
494
496
|
hcs_cli/support/scm/plan-editor.html.template,sha256=qXhHYjBsG8uaVlMkc0gnCePoSV3w5NyTkaLhXV9jlC0,26874
|
|
495
497
|
hcs_cli/support/scm/plan_editor.py,sha256=pZtm9X_R-vs2JxJ_NX7-wTAoY-nhI-gFqhcyVDdEZVM,3108
|
|
496
|
-
hcs_cli-0.1.
|
|
497
|
-
hcs_cli-0.1.
|
|
498
|
-
hcs_cli-0.1.
|
|
499
|
-
hcs_cli-0.1.
|
|
498
|
+
hcs_cli-0.1.321.dist-info/METADATA,sha256=llYPP2ShA7g1sBAPChU2L8BaF62Yq0ozSKHZ0xFVieQ,3614
|
|
499
|
+
hcs_cli-0.1.321.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
500
|
+
hcs_cli-0.1.321.dist-info/entry_points.txt,sha256=5uH-af1WUETSBSer2bu4YMGQNY5RriJHsjepb8ACiX8,42
|
|
501
|
+
hcs_cli-0.1.321.dist-info/RECORD,,
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "azure-dummy",
|
|
3
|
-
"orgId": "aecd10d9-ca4f-4af8-97fa-9d7b6f25e285",
|
|
4
|
-
"location": "US",
|
|
5
|
-
"region": "westus2",
|
|
6
|
-
"name": "azure-dummy",
|
|
7
|
-
"templateType": "FLOATING",
|
|
8
|
-
"provisionWithAgentReady": false,
|
|
9
|
-
"vmNamePattern": "azdummy-",
|
|
10
|
-
"resourceManagerTemplate": "dev/dummy",
|
|
11
|
-
"vmRefreshType": "DELETE_VM",
|
|
12
|
-
"reuseVmIds": false,
|
|
13
|
-
"useAZ": false,
|
|
14
|
-
"provider": {
|
|
15
|
-
"providerAccessId": "dev-azure"
|
|
16
|
-
},
|
|
17
|
-
"sparePolicy": {
|
|
18
|
-
"increment": 600,
|
|
19
|
-
"limit": 3,
|
|
20
|
-
"max": 3,
|
|
21
|
-
"min": 1
|
|
22
|
-
},
|
|
23
|
-
"providerType": "AZURE",
|
|
24
|
-
"hdc": {
|
|
25
|
-
"vmHubName": "westus2",
|
|
26
|
-
"vmHubURL": "https://nanw.fs.devframe.cp.horizon.omnissa.com"
|
|
27
|
-
},
|
|
28
|
-
"edgeGateway": {
|
|
29
|
-
"id": "abcdefghijklmnopqrstuvwx",
|
|
30
|
-
"iotDeviceName": "syntheticIotDeviceName",
|
|
31
|
-
"adTwinId": "syntheticAdTwinId"
|
|
32
|
-
},
|
|
33
|
-
"activeDirectory": {
|
|
34
|
-
"domain": "nanw.local"
|
|
35
|
-
},
|
|
36
|
-
"network": {
|
|
37
|
-
"vNetName": "nanw-vnet",
|
|
38
|
-
"subnetName": "default",
|
|
39
|
-
"vNetResourceGroup": "nanw-infra",
|
|
40
|
-
"location": "westus2",
|
|
41
|
-
"publicIpAddressType": "DYNAMIC",
|
|
42
|
-
"publicIpAddressSku": "Basic"
|
|
43
|
-
},
|
|
44
|
-
"image": {
|
|
45
|
-
"imageReference": {
|
|
46
|
-
"publisher": "Canonical",
|
|
47
|
-
"offer": "UbuntuServer",
|
|
48
|
-
"sku": "18.04-LTS",
|
|
49
|
-
"version": "latest"
|
|
50
|
-
},
|
|
51
|
-
"os": "linux",
|
|
52
|
-
"guestUsername": "ubuntu",
|
|
53
|
-
"guestPassword": "dummy-password"
|
|
54
|
-
},
|
|
55
|
-
"vmSpec": {
|
|
56
|
-
"diskSize": 127,
|
|
57
|
-
"diskType": "Standard_LRS"
|
|
58
|
-
},
|
|
59
|
-
"agentCustomization": {
|
|
60
|
-
"sessionsPerVm": 1
|
|
61
|
-
},
|
|
62
|
-
"properties": {
|
|
63
|
-
"azureCreateResourceGroup": true,
|
|
64
|
-
"new-task-engine": true,
|
|
65
|
-
"simulateAgentStatus": "AVAILABLE"
|
|
66
|
-
}
|
|
67
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|