Skip to content

Commit 0296d91

Browse files
naveena-maplelabsNaveena
authored andcommitted
Update README.md
1 parent 867d8c0 commit 0296d91

File tree

5 files changed

+111
-86
lines changed

5 files changed

+111
-86
lines changed

samples/project-anfield/README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,21 @@ This will work for Python 3 >=3.4.
7171
```
7272
## Note
7373

74-
1. This is not a restore point feature. It doesn't add/delete incremental updates for existing entities.
74+
*This is not a restore point feature. It doesn't add/delete incremental updates for existing entities.*
75+
76+
1. Before executing the scripts, Update the import and export cluster credentials in the config.ini file.
77+
78+
Update following fields for both import_cluster_config and export_cluster_config section.
79+
80+
cluster_ip = `x.x.x.x`
81+
82+
username = `admin`
83+
84+
password = `admin`
85+
86+
domain = `LOCAL`
87+
88+
> In case of clusters accessed through RT, provide cluster_ip as follows, cluster_ip = `localhost:rtPort`
7589
7690
2. Override - Flag to override the existing protection resources during import-config is available in config.ini.
7791

@@ -155,7 +169,7 @@ python export_cluster_config.py --file_location /tmp/ --file_name sample_export_
155169
```
156170
The above command will generate sample_export_config file under /tmp folder.
157171
158-
### Ouput
172+
### Output
159173
```
160174
INFO:export_app:Exporting resources from cluster 'Kursk'
161175
INFO:export_app:

samples/project-anfield/backup.ini

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
[export_cluster_config]
2+
cluster_ip = 10.14.31.6
3+
username = admin
4+
password = Cohe$1ty
5+
domain = LOCAL
6+
skip_jobs = false
7+
export_access_management = false
8+
9+
[import_cluster_config]
10+
cluster_ip = 10.2.100.251
11+
username = admin
12+
password = Cohe$1ty
13+
domain = LOCAL
14+
api_pause_time = 2
15+
pause_jobs = true
16+
override = false
17+
gflag = no
18+
imported_job_prefix =
19+
imported_job_suffix =
20+
selected_jobs =
21+
global_whitelists = no
22+
vlans = no
23+
24+
[TestBucket]
25+
client_private_key =-----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDkt/6vMhE009to AAlBmGsjnC1L64Ks3BwVTUGhoIQTOb9FcUgpEwcRKZCLXkyGg6ypgaZ2e0Qpb7Gj xSJ/a7pMyY+c/2Hdr6Ve3/x3KUrIFkZAMdA7ZfxZtzQVYWzEgeoNd+61OIxyo+io jubr+JBlsHVyHn7phNeGJuVzsPXL4pFXACdiPy2rlCHw72sbxdYyWsZSAk0i1lo8 9gpc4at2IYhgsPsa+sJZUokqcLrXYyaKvkGKnmMMBjy+EoyhViLGdpR+H/RToKlw 84FLaTYj4AmA1WH+4HGQk1jf1FCxA4IhgfkasPoYgtVeEAqhxhgTRNQTuFrPFGM7 ky4nN+dZAgMBAAECggEADjphKXflXx86Ymb1X6aO+UYHziKMws3mIO/pGctfYl/9 ki3T+qe+3eZZu6z2XyKfO2PTCnYGAJSv42UdJy0Suu0jaUJWNB3vNsHOgrRhMD8T SEukM9W9bYog8mvyaFHZ0NQTPiQrt7csZYDCRI92OB7SjfKJgmOSEe8NTg85My4h k2Wkbnqz+gpvejTj/QMN9gkyeUk2AWnLal0EGEFyn9uOuRPcRs8jyFU62XRGzltl VuvPN7++2O0REcH/jmD6btsA7Oh88XI5dT9WxlSa7WGtwduNHa4kYIdyYJql51BS HHgcygN5Xn8knHNNgzOHtLSiScoWgw7h9wbKjo+M0wKBgQD6cx4NOdyWb3lBZ2Fj nHKe5181JQYGXCBZoh+VbtaXXh6BNE1CX26tW1YSjh8uaJxyX/mbp2VPGMdVCmNL 4y7EgwVZNI+pIwPUYgvUWZaZPdQ97cPFjfYfnzwVhpU3Z4p2otMDdTwMfSdOiImJ Lnhj63IXMLziuLhhHTRk0cRezwKBgQDpyZc56sB2Zc4Pv6PoGDKfNzFpTAzN147p extGJqeUCKdiFSalW026sQbLOZTdbVNXTtiIM6Z5zUld3SYRjjDC4wWLCi4Dcmvo /YybE2Fk0bage9j0bj/PE/tvOZwgNyeWqCtN80DJPTYlSS6/ryE9XKRaadtBnJeI zwJZp00hVwKBgEXB9qbcbPKBzhZHgzrJgqt76mrVCx6OXnxYyc9HdgHnNzvpo3NP PXaPsCOu7kRw4tKApPeT4oXrcune4NVsS8R0cfLszu7fT9vCC2V0Jpw8OnedWCAY cGtSYNvmBn3OGyT8KSYXa0hXO7GGGjjZdrLuC3MmIhZMOR7jkYpbWwTFAoGBANiE s2IYYBdHQgij3BFgF8INQ93ZaSJauSjTsvbNZfZb7WmRXTFX1i1JNpmQwqYwUjdR 9ohuDYhQ79nWryMjJVXZG5Eh5Guc1QP7jvUwhcrxzsni6ZO3Z7FJOFxSZp4PdsK5 DSIsX5wA7NyrYnh0obxKyIxT7ZReiplR30NZBr4RAoGAKS7fr0lA2CMbPJdkDK8t AxhZluhKQB6rUHWo+BcdmNq1MeEO10Q5XwUZlnrLKt7x7/wFT/ovAqhkS7Au7UOi B5ICWje6JhJf9NoKzerKFXt05blZyAsjq0DT8JwsuGx/mXCXnUbIje4yh8WNh0mX w5UoAkB/Lrl0d/2M9nJ+Wks= -----END PRIVATE KEY-----
26+
27+
[GCP]
28+
client_private_key = -----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDNhoteg9XqdCXM\noKYvCOyIr2kRvHwNJ4yRUN2Qb5XMVLGW78Scx2WZPRiKab+Rjz0yBks1bpkfSZ0V\n+SW+qXZLPfYVi4+2M04AQWNN1itdhTc/5fMUZb1zpNxydogPQyLlmDxNPC775wc1\nxtNlvosT39LnRnGXjIK0lrQ0kiO4AtmShWsACF/wXtIYbB9UnXjANTgSZ86yfjVR\nNZyQ7pCtANQPSuC8Cfd1m3T0nsjOW24MkksE8mfiMgbMp2Wo4Ql4mTHPxvlf919U\nvthPiI4JwoybcrCFeO05ZVf038eftStRD25INxdVUZfWzIGrGzxPHvhmCSyIcsKz\nwHzJVY7zAgMBAAECggEABIzZoA9XClwQDCysyhogMu8qXBA4f4nWAUFjIClVm9ng\nZOEh9H7Z29Fh2N/6JZ6SDqii5tmo792PTXxnHrEdqoLl8pFjJ008QiH3lLJpN7TG\n8GtjC0XXXVAh6YeAnG1yeSxBt0vPpHuFwtekjYFi8lDAbd/TU9/kOgaHBA3U5StF\ntH7TKyT8iHYWnkrTt4386J7IhfwOwSDCG8/impNGZawLk0NvZ9c1glM+UuCeNzTw\nX2ApIpRZY4ypYbD1zFSJMN5phOkBOlD/ZRcVL3pWys3vliSi1KRH7eYMeu0K5udW\nScC3VcxROuT3nUovQ40lnPFBn3tJi7shFtBy9g+oeQKBgQDwExEcOqWfRPoJdW0t\nkjmtTNk6KVxjREradJav/2NCHCaNkSqhVImbI5GujIMOOHo7UBGIqpRJVGDDFD+W\nC0Te/tRJrtXcsRv3kDetFHmc07FuFNvvvq4MVEO1KQwCxdbUL2n3ptafz5kkqBWO\nVulc08G7kUNogIhG+NiR2Ce9+QKBgQDbKMUCJ2N+4yzg4OzPFz1Hd3O/CrDG9Whk\nKU2kClYnv9CJmhHbnCrLse+gVXSbb6Jc5fMvthQPiRf/mju7qpF1V0RzfH0cIuIf\nJgDkGy2EI10Qq9svjKgPFHqo7UwUiBPJVrvEYzH2BQOmUEhsSJ/huHk9hjmXd7Tv\n5PCuYh3fSwKBgHGf9JcxwrWxBc54P2Y0MQwutRlr/ggViIAAcll2PFpLzItwS4bz\n5fUBTrAYXObcIC32ZXYTlf9m6i0qZjXzu3L3lS4Si7HaOWxgW5mVeUGah/2b7cR4\nsROwxiL1/HNLg7QFhNfrpOUaclcBHsKxq919c9H8nLTXMKi2mnncnmKxAoGAWlOE\nVy3qyQpSneC2WWgnnoPyFaQPVgEhZF7NnDWSatGY3o28nHnR/aA5tihiZgntrkIs\nJ9bwj7KeTH/B7MgRKX6tPLfrTKRn9BSSu3EkIlj863kZXpCnV4fGQkeDWtb26L2x\np/CGT/KjHXHrV43bL4n7lkrzA6WX0mPWetj/nN8CgYBBqtuKfJ4DmjX5VZ17u4y8\n/RWDzt6I+PFuJWGZTRrTgrGAnu9f3YIow0LcgLfM6JJQ7Z+ia5883begzxpnHzax\nsgYCPG7PBh0H9+KcxX0XHfSfImUa2Y8p55Tmy39G9m3VDvq4wvkH5q9pFoknAL70\nn1xU6w1jj6DgS8Jt1r84qg==\n-----END PRIVATE KEY-----\n
29+
30+
[157149581203-compute]
31+
password = -----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDNhoteg9XqdCXM\noKYvCOyIr2kRvHwNJ4yRUN2Qb5XMVLGW78Scx2WZPRiKab+Rjz0yBks1bpkfSZ0V\n+SW+qXZLPfYVi4+2M04AQWNN1itdhTc/5fMUZb1zpNxydogPQyLlmDxNPC775wc1\nxtNlvosT39LnRnGXjIK0lrQ0kiO4AtmShWsACF/wXtIYbB9UnXjANTgSZ86yfjVR\nNZyQ7pCtANQPSuC8Cfd1m3T0nsjOW24MkksE8mfiMgbMp2Wo4Ql4mTHPxvlf919U\nvthPiI4JwoybcrCFeO05ZVf038eftStRD25INxdVUZfWzIGrGzxPHvhmCSyIcsKz\nwHzJVY7zAgMBAAECggEABIzZoA9XClwQDCysyhogMu8qXBA4f4nWAUFjIClVm9ng\nZOEh9H7Z29Fh2N/6JZ6SDqii5tmo792PTXxnHrEdqoLl8pFjJ008QiH3lLJpN7TG\n8GtjC0XXXVAh6YeAnG1yeSxBt0vPpHuFwtekjYFi8lDAbd/TU9/kOgaHBA3U5StF\ntH7TKyT8iHYWnkrTt4386J7IhfwOwSDCG8/impNGZawLk0NvZ9c1glM+UuCeNzTw\nX2ApIpRZY4ypYbD1zFSJMN5phOkBOlD/ZRcVL3pWys3vliSi1KRH7eYMeu0K5udW\nScC3VcxROuT3nUovQ40lnPFBn3tJi7shFtBy9g+oeQKBgQDwExEcOqWfRPoJdW0t\nkjmtTNk6KVxjREradJav/2NCHCaNkSqhVImbI5GujIMOOHo7UBGIqpRJVGDDFD+W\nC0Te/tRJrtXcsRv3kDetFHmc07FuFNvvvq4MVEO1KQwCxdbUL2n3ptafz5kkqBWO\nVulc08G7kUNogIhG+NiR2Ce9+QKBgQDbKMUCJ2N+4yzg4OzPFz1Hd3O/CrDG9Whk\nKU2kClYnv9CJmhHbnCrLse+gVXSbb6Jc5fMvthQPiRf/mju7qpF1V0RzfH0cIuIf\nJgDkGy2EI10Qq9svjKgPFHqo7UwUiBPJVrvEYzH2BQOmUEhsSJ/huHk9hjmXd7Tv\n5PCuYh3fSwKBgHGf9JcxwrWxBc54P2Y0MQwutRlr/ggViIAAcll2PFpLzItwS4bz\n5fUBTrAYXObcIC32ZXYTlf9m6i0qZjXzu3L3lS4Si7HaOWxgW5mVeUGah/2b7cR4\nsROwxiL1/HNLg7QFhNfrpOUaclcBHsKxq919c9H8nLTXMKi2mnncnmKxAoGAWlOE\nVy3qyQpSneC2WWgnnoPyFaQPVgEhZF7NnDWSatGY3o28nHnR/aA5tihiZgntrkIs\nJ9bwj7KeTH/B7MgRKX6tPLfrTKRn9BSSu3EkIlj863kZXpCnV4fGQkeDWtb26L2x\np/CGT/KjHXHrV43bL4n7lkrzA6WX0mPWetj/nN8CgYBBqtuKfJ4DmjX5VZ17u4y8\n/RWDzt6I+PFuJWGZTRrTgrGAnu9f3YIow0LcgLfM6JJQ7Z+ia5883begzxpnHzax\nsgYCPG7PBh0H9+KcxX0XHfSfImUa2Y8p55Tmy39G9m3VDvq4wvkH5q9pFoknAL70\nn1xU6w1jj6DgS8Jt1r84qg==\n-----END PRIVATE KEY-----\n
32+
33+
[10.102.2.154]
34+
hdfs_config = /etc/hdfs/conf
35+
hive_config = /etc/hive/conf
36+
username = root
37+
password = talena123
38+
39+
[10.2.202.67]
40+
hdfs_config =
41+
hive_config =
42+
username =
43+
password =
44+
45+
46+
[S3Target]
47+
secret_access_key=rHtX44l4pRc7Z3KB21FWTmI3NMb53Z3jPZVNuTZo3T0
48+
49+
[10.2.195.113]
50+
storage_access_key = ou1CDpzL0Ea3DOqmMCJA7ytfRiDpK8zd4cc1gUNs/yFTpMzKiR+PjEGEtD5g2Y4lMS+hxGm5EX1/rHbZvlGMnw==
51+
52+
[sv4-isilon1]
53+
password = fr8shst8rt
54+
smb_password = fr8shst8rt
55+
56+
[vc-67.eco.eng.cohesity.com]
57+
password = Cohe$1ty
58+
59+
[AshishCluster]
60+
password = Cohe$1ty
61+
62+
[\\10.2.145.49\fileshares-category]
63+
password = Cohe$1ty

samples/project-anfield/config.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ username=<user>
44
password=<password>
55
domain=<domain>
66
# skip_jobs parameter is to ignore exporting paused and failover ready jobs.
7-
skip_jobs=true
7+
skip_jobs=false
88
# export_access_management parameter is for to decide whether to import active
99
# directory entries and associated AD user and groups. Roles are also imported.
1010
export_access_management=false

samples/project-anfield/import_cluster_config.py

Lines changed: 30 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
EnvironmentRegisterProtectionSourceParametersEnum as env_enum,
3232
)
3333
from cohesity_management_sdk.models.exclude_type_enum import ExcludeTypeEnum
34+
from cohesity_management_sdk.models.external_target_type_enum import (
35+
ExternalTargetTypeEnum,
36+
)
3437
from cohesity_management_sdk.models.external_client_subnets import (
3538
ExternalClientSubnets,
3639
)
@@ -278,94 +281,39 @@ def create_vaults():
278281
external_targets[vault.id] = available_vaults_dict[vault.name]
279282
imported_res_dict["External Targets"].append(vault.name)
280283
continue
281-
if vault.config.qstar: # Qstar target.
282-
try:
283-
body = Vault()
284-
_construct_body(body, vault)
284+
try:
285+
body = Vault()
286+
_construct_body(body, vault)
287+
if vault.config.qstar: # Qstar target.
285288
password = configparser.get(vault.name, "password")
286289
body.config.qstar.password = password
287-
resp = cohesity_client.vaults.create_vault(body)
288-
external_targets[vault.id] = resp.id
289-
imported_res_dict["External Targets"].append(body.name)
290-
time.sleep(sleep_time)
291-
except (APIException, RequestErrorErrorException) as e:
292-
ERROR_LIST.append(
293-
"Error Adding Qstar Target: %s, Failed with error: %s"
294-
% (vault.name, e)
295-
)
296-
except Exception as err:
297-
ERROR_LIST.append(
298-
"Please add correct config for %s in "
299-
"config.ini, err is %s" % (vault.name, err)
300-
)
301-
302-
elif vault.config.azure: # Azure Hot Blob target.
303-
try:
304-
body = Vault()
305-
_construct_body(body, vault)
306-
storage_access_key = configparser.get(
307-
vault.name, "storage_access_key")
290+
elif vault.config.azure: # Azure Hot Blob target.
291+
storage_access_key = configparser.get(vault.name, "storage_access_key")
292+
body.external_target_type = ExternalTargetTypeEnum.KAZURE
308293
body.config.azure.storage_access_key = storage_access_key
309-
resp = cohesity_client.vaults.create_vault(body)
310-
external_targets[vault.id] = resp.id
311-
imported_res_dict["External Targets"].append(body.name)
312-
time.sleep(sleep_time)
313-
except (APIException, RequestErrorErrorException) as e:
314-
ERROR_LIST.append(
315-
"Error Adding Azure hot blob Target: %s, Failed with "
316-
"error: %s" % (vault.name, e)
317-
)
318-
except Exception as err:
319-
ERROR_LIST.append(
320-
"Please add correct config for %s in "
321-
"config.ini, err is %s" % (vault.name, err)
322-
)
323-
324-
elif vault.config.amazon: # Amazon s3 targets
325-
try:
326-
body = Vault()
327-
_construct_body(body, vault)
294+
elif vault.config.amazon: # Amazon s3 targets
328295
secret_key = configparser.get(vault.name, "secret_access_key")
329296
body.config.amazon.secret_access_key = secret_key
330-
resp = cohesity_client.vaults.create_vault(body)
331-
external_targets[vault.id] = resp.id
332-
imported_res_dict["External Targets"].append(body.name)
333-
time.sleep(sleep_time)
334-
except RequestErrorErrorException as e:
335-
ERROR_LIST.append(
336-
"Error Adding Amazon S3 Target: %s, Failed with error: %s"
337-
% (vault.name, e)
338-
)
339-
except APIException as e:
340-
ERROR_LIST.append(
341-
"Error Adding Amazon S3 Target: %s, Failed with error: %s"
342-
% (vault.name, e)
343-
)
344-
except Exception as err:
345-
ERROR_LIST.append(
346-
"Please add correct config for %s in " "config.ini" % vault.name
347-
)
348-
elif vault.config.nas: # Generic s3 targets
349-
body = Vault()
350-
_construct_body(body, vault)
351-
try:
352-
resp = cohesity_client.vaults.create_vault(body)
353-
external_targets[vault.id] = resp.id
354-
imported_res_dict["External Targets"].append(body.name)
355-
except RequestErrorErrorException as e:
356-
ERROR_LIST.append(
357-
"Error Adding S3 Target: %s, Failed with error: %s"
358-
% (vault.name, e)
359-
)
360-
except APIException as e:
361-
ERROR_LIST.append(
362-
"Error Adding S3 Target: %s, Failed with error: %s"
363-
% (vault.name, e)
364-
)
365-
except Exception as err:
366-
ERROR_LIST.append(
367-
"Please add correct config for %s in " "config.ini" % vault.name
297+
elif vault.config.google:
298+
private_key = (
299+
configparser.get(vault.name, "client_private_key")
300+
.encode()
301+
.decode("unicode-escape")
368302
)
303+
body.config.google.client_private_key = private_key
304+
resp = cohesity_client.vaults.create_vault(body)
305+
external_targets[vault.id] = resp.id
306+
imported_res_dict["External Targets"].append(body.name)
307+
time.sleep(sleep_time)
308+
except (APIException, RequestErrorErrorException) as e:
309+
ERROR_LIST.append(
310+
"Error Adding Target: %s, Failed with error: %s" % (vault.name, e)
311+
)
312+
except Exception as err:
313+
ERROR_LIST.append(
314+
"Please add correct config for %s in "
315+
"config.ini, err is %s" % (vault.name, err)
316+
)
369317

370318

371319
def check_register_status(name, environment, sleep_count=6):

samples/project-anfield/library.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def get_protection_jobs(cohesity_client, skip_jobs=False):
109109
if job.is_deleted:
110110
continue
111111
# Skip jobs which are paused or in-active(failover ready).
112-
if skip_jobs and (job.is_paused or not job.is_active):
112+
if skip_jobs and (job.is_paused or job.is_active != None):
113113
continue
114114
active_job_list.append(job)
115115
exported_res_dict["Protection Jobs"].append(job.name)

0 commit comments

Comments
 (0)