пытается получить доступ к функции add_array из управления массивом классов, но она выдает ошибку "Ошибка: ошибка: у объекта 'str' нет атрибута 'addarray'"
Обертка:
def add_array (self, vendor_name, arrayname, имя пользователя, пароль, control_host = None, is_ocum = False):
self.log.info("Adding array management entry")
self.log.info(vendor_name)
self.commcell.array_management.add_array(vendor_name, arrayname, username, password, control_host=control_host, is_ocum=is_ocum)
self.log.info("Add array done 1 ")
control_host_array = self.execute_query(self.get_controlhost_id, arrayname)
self.log.info("Execdsafsadf successful")
print(control_host_array)
self.log.info("Add array was successful")
def template (self):
self.add_array (self.snap_engine_at_array, self.arrayname, self.username, self.password, self.controlhost, is_ocum = False)
Вызов frm класса arraymanagement.py:
def add_array (self, vendor_name, array_name, username, password, control_host = None, is_ocum = False):
печать (продавец VENDOR_NAME)
"" "Этот метод поможет в добавлении записи массива в управление массивом
Арги:
vendor_name: имя поставщика
имя_массива: имя массива
control_host: управляющий хост массива при необходимости
имя пользователя / пароль: учетные данные для доступа к массиву
array_type: используется для netapp, чтобы указать, использовать ли основной файловый сервер или OCUM, по умолчанию это основной файловый сервер. "" "
print(username)
print(password)
request_json = {
"clientId": 0,
"flags": 0,
"assocType": 0,
"copyId": 0,
"appId": 0,
"availableMAs": [
{
"arrayControllerId": 0,
"mediaAgent": {
"name": "",
"id": 0
}
},
],
"hostDG": {
"doNotMoveDevices": True,
"isOverridden": False,
"hostDGName": "",
"useOnlySpouseDevices": False,
"flags": 0,
"deviceGroupOption": 0
},
"arrayDG": {
"isOverridden": False,
"arrayDGName": "",
"flags": 0,
"disableDG": False,
"useDevicesFromThisDG": False
},
"configList": {},
"array": {
"name": "",
"id": 0
},
"vendor": {
"name": "",
"id": 0
},
"info": {
"passwordEdit": False,
"offlineReason": "",
"arrayType": 0,
"flags": 0,
"description": "",
"ctrlHostName": control_host,
"offlineCode": 0,
"isEnabled": True,
"arrayInfoType": 0,
"uniqueIdentifier": "",
"securityAssociations": {
"processHiddenPermission": 0
},
"userPswd": {
"userName": username,
"password": password,
},
"arraySecurity": {},
"arrayName": {
"name": array_name,
"id": 0
},
"vendor": {
"name": vendor_name,
"id": 0
},
"client": {
"name": "",
"id": 0
}
}
}
array_type_dict1 = {
"info": {
"arrayType": 2
}
}
array_type_dict2 = {
"info": {
"arrayType": 1
}
}
array_type_dict3 = {
"info": {
"arrayType": 0
}
}
print(request_json)
if vendor_name == "NetApp":
request_json["info"].update(array_type_dict1["info"]),
if vendor_name == "NetApp" and is_ocum:
request_json["info"].update(array_type_dict2["info"]),
else:
request_json["info"].update(array_type_dict3["info"]),
print(request_json)
flag, response = self.commcell._cvpysdk_object.make_request(
'POST', self._StorageArrays, request_json
)
if flag:
if response.json():
if 'success' in response.json():
return
elif 'errorCode' in response.json():
error_message = response.json()['errorMessage']
elif "errorCode" in response.json() == 1:
raise exception("Failed to add array, failing the test case")
return