Пример #1
0
    def wait_for_download_complete():
        time.sleep(10)  # This is to wait the download process to start
        download_path = ConfigAdapter.get_testdata_path().replace("\\\\", "\\")
        temp_file = ''
        for file in os.listdir(download_path):
            if re.match(r'restore_.*\.part$', file):
                temp_file = os.path.join(download_path, file)
        if temp_file == '':
            # KPIHelper.log_error(category="Web", kpiname="Download", result="SUCCESS", message="Download Completed.")
            LogHelper.info('Download Completed!')
            return True
        else:
            time.sleep(5)
            for i in range(100):
                if os.path.isfile(temp_file):
                    time.sleep(4)
                else:
                    # KPIHelper.log_error(category="Web", kpiname="Download", result="SUCCESS", message="Download Completed.")
                    LogHelper.info('Download Completed!')
                    return True

            # KPIHelper.log_error(category="Web", kpiname="Download", result="Fail", message="Timeout.")
            LogHelper.error('ERROR: Download Failed!')

            return False
    def kill_fb(cls):
        """
        kill file beat process
        :return:
        """
        result = False

        if PlatformHelper.is_mac() or PlatformHelper.is_Linux():
            cmd = "ps aux | grep 'filebeat -c' | grep -v 'grep'"
            output = CmdHelper.run(cmd)
            process_id = output.split()[1]
            kill_fb_cmd = "kill -9 %s" % process_id
            output = CmdHelper.run(kill_fb_cmd)

        if PlatformHelper.is_win():
            cmd = "sc stop filebeat"
            output = CmdHelper.run(cmd)

        LogHelper.debug(output)
        if cls.is_fb_running():
            LogHelper.error(
                "filebeat service CAN NOT be stopped successfully.")
        else:
            LogHelper.info("filebeat service is stopped")
            result = True

        return result
Пример #3
0
 def check_entity(self, entity_name):
     """
     in Freyja main page, check a dir or files by its name
     :param entity_name:
     :return:
     """
     #check minus
     #right_click_target = "//tr[contains(@id, '\"{entity_name}\"')]/td[@class='center col col-checkbox']//span".format(entity_name=entity_name)
     #right_click_target = "//span[text()='" + entity_name + "']"
     cb_target = '//tr[contains(@id, "{entity_name}")]/td[1]/div/span[contains(@class, "check")]'.format(
         entity_name=entity_name)
     LogHelper.info(cb_target)
     try:
         self.locate_element(cb_target).click()
         actionPanel = self.locate_element(
             '//div[contains(@class, "panel-toggle") and @title="View Actions pane"]'
         )
         LogHelper.info(str(actionPanel))
         actionPanel.click()
         self.locate_element(
             '//div[text()="Large Download Options..."]').click()
         return True
     except Exception:
         LogHelper.error("Fail to click Large Download Options.")
         return False
Пример #4
0
    def write_to_elasticsearch(self, sendes=True):
        if sendes:
            url = GLOBAL_CONFIG['ELASTICSEARCH'].get(
                'URL') or "http://localhost"
            port = GLOBAL_CONFIG['ELASTICSEARCH'].get('PORT') or "8080"
            es = ElasticsearchHelper(url, port)
            #LogHelper.debug("Start to Write testresult to ES")
            result = es.index(index='kpi',
                              doc_type='kpi',
                              body=self.__create_es_body(),
                              _id=self.id)
            if result:
                message = result.get('result')
                print message
                # if message.strip().lstrip() not in ("created", 'updated'):
                #     LogHelper.error("create testresult message is %s" %message)
                # else:
                #     LogHelper.warn("create test result is %s" %message)
                return result
            else:
                LogHelper.error("Fail to send KPI info to ES.")
                return

        else:
            print "Don't Send KPI to ES..."
            return self.read()
Пример #5
0
    def wait_state(self, state, timeout=None, granularity=None):
        """
        :param state:
        :param timeout:
        :param granularity:
        :return:
        """
        result = True

        if timeout is None:
            timeout = GLOBAL_CONFIG["TIMEOUT"]
        if granularity is None:
            granularity = GLOBAL_CONFIG["GRANULARITY"]

        expected_state = []

        if type(state) == str:
            expected_state.append(state)
        else:
            expected_state = state

        current = self.current_state()
        elapsed = 0
        while (current.upper() not in expected_state) and elapsed <= timeout:
            LogHelper.debug("current state is %s" % current)
            time.sleep(granularity)
            elapsed += granularity
            current = self.current_state()
        if current.upper() not in expected_state:
            LogHelper.error("wait %s failed" % expected_state)
            raise Exception("Expected Result %s is not shownup" %
                            expected_state)

        return result
def step_impl(context):
    winclient = Windows_Client(RUNNER_CONFIG.get('OEM_CLIENT', "mozypro"))
    result = winclient.controller.search_result_in_history()
    if result[0] == -9:
        LogHelper.info("backup is cancelled successfully")
    else:
        LogHelper.error("backup is cancelled unsuccessfully")
Пример #7
0
    def create_mzd(self):
        try:
            self.locate_element(self.xpaths['restoreName']).click()
            time.sleep(1)
            self.locate_element(self.xpaths['restoreName']).send_keys(
                FRYR_CONFIG['RESTORE']['MZD_TAG'])
            self.locate_element(self.xpaths['restoreNextBtn']).click()
            self.locate_element(self.xpaths['mzdRadioBtn']).click()
            self.locate_element(self.xpaths['restoreNextBtn']).click()

            skip_btn = self.is_element_exist(self.xpaths['skipDownloadLink'],
                                             10)
            if skip_btn:
                skip_btn.click()
            else:
                el = self.is_element_exist(self.xpaths['downloadFryRLink'], 2)
                if el:
                    el.click()

            self.locate_element(self.xpaths['beginDownloadBtn']).click()
            time.sleep(5)
            self.locate_element(self.xpaths['closeBtn']).click()

            return True
        except Exception, e:
            LogHelper.error(repr(e))
            LogHelper.error("Fail to create mzd file.")
            return False
Пример #8
0
def after_scenario(context, scenario):
    context.tc.end_time = strftime("%Y-%m-%dT%H:%M:%SZ", gmtime())
    context.tc.duration = int(scenario.duration)
    context.tc.test_result = scenario.status

    if context.senddb:

        if not (RUNNER_CONFIG.get("PRODUCT") or '').lower() == 'mts':
            native_client = NativeClientFactory.get_client(product=RUNNER_CONFIG.get("PRODUCT"),
                                                           oem=RUNNER_CONFIG.get("OEM_CLIENT"))

            KPIHelper.testcase = context.tc.name
            KPIHelper.extract_kpi(native_client.controller.log, starttime=context.log_starttime, hostname=context.tc.machine_hostname, ip=context.tc.machine_ip, env=context.env)

        if "-" in KPIHelper.thost:
            context.tc.thost = KPIHelper.thost.split("-")[1]     # tds06-ut4.triton.mozy.com
        else:
            context.tc.thost = KPIHelper.thost        # ut4.triton.mozy.com

        context.tc.write_to_elasticsearch()

    log = context.log_capture
    for line in log.getvalue().splitlines():
        if line.find("ERROR") >=0:
            LogHelper.error(line)
Пример #9
0
def step_impl(context):
    is_installed = LinuxClient().controller.is_client_installed()
    LogHelper.info("Check Whether Linux Client Installed successfully")
    try:
        is_installed.should.equal(True)
    except AssertionError as e:
        LogHelper.error(e.message)
        raise e
Пример #10
0
 def select_folder(self):
     try:
         Page.wait_for_element_list(self.xpaths['folderIcon']).click()
         return True
     except Exception:
         LogHelper.error("Select folder failed.")
         # Page.quit()
         return False
Пример #11
0
 def click_button(btn_handle):
     #LogHelper.info('click button {}'.format(btn_handle.AXTitle))
     try:
         btn_handle.Press()
     except ErrorCannotComplete as e:
         LogHelper.error(e.message)
     except Error as e:
         LogHelper.error(e.message)
Пример #12
0
 def click_client_configuration(cls):
     try:
         Page.delayed_click(cls.xpaths['client_configuration_link'], sleep_time=2)
         return True
     except Exception:
         LogHelper.error("Click Client Configration link failed.")
         # Page.quit()
         return False
Пример #13
0
 def start_use_mozy(cls):
     try:
         Page.delayed_click(cls.xpaths['start_using_mozy_btn'], sleep_time=2)
         return True
     except Exception:
         LogHelper.error("Click Start Using Mozy Button failed.")
         # Page.quit()
         return False
Пример #14
0
 def act_as_partner(cls):
     try:
         Page.delayed_click(cls.xpaths['act_as_link'], sleep_time=2)
         cls.start_use_mozy()
         return True
     except Exception:
         LogHelper.error("Act as partner failed.")
         # Page.quit()
         return False
 def select_combobox(combo_box, index=0):
     result = False
     try:
         combo_box.Select(index)
     except NotImplementedError as e:
         LogHelper.error(e.message)
     else:
         result = True
     return result
def step_impl(context, restore_dir, backup_dir):

    result = FileHelper.is_dir_same(restore_dir, backup_dir)

    if result:
        for diff in result:
            LogHelper.error("diff files found {path}".format(path=diff))

    len(result).should.equal(0)
Пример #17
0
 def select_folder(cls):
     try:
         el = Page.wait_for_element_list(cls.xpaths['folderIcon'])
         el.click()
         return True
     except Exception:
         LogHelper.error("BUS Select folder failed.")
         # Page.quit()
         return False
 def verify_ui(self):
     try:
         self.locate_element(self.xpaths['folder_list']).is_displayed()
         LogHelper.info('Folder list is displayed for ' + self.machine_name)
     except:
         LogHelper.error('Folder list is not displayed for ' +
                         self.machine_name)
         raise AssertionError('Folder list is not displayed for ' +
                              self.machine_name)
Пример #19
0
 def click_radio_button(radio_button_handle):
     LogHelper.info('click radio button {}'.format(
         radio_button_handle.AXTitle))
     try:
         radio_button_handle.Press()
     except ErrorCannotComplete as e:
         LogHelper.error(e.message)
     except Error as e:
         LogHelper.error(e.message)
Пример #20
0
def step_impl(context, backupsetname, func):
    root_path = WIN_CONFIG.get('TESTDATA_PATH', "c:/testdata")
    if func == "CLI":
        Windows_Client(RUNNER_CONFIG.get('OEM_CLIENT', "mozypro")).cli.create_backupset(root_path, backupsetname)
    elif func.upper() == "UI":
        # TODO: Further invesigate pywinauto to support right click popup menu
        pass
    else:
        LogHelper.error("ERROR: Only support start backup from MozyUTIL or UI.")
Пример #21
0
def step_impl(context, expected_state):
    expected_state.upper()
    LogHelper.debug("expected status is %s" % expected_state)
    actual_status = LinuxGUIClient.state_cmd.current_state().upper()
    LogHelper.debug("actual_status status is %s" % actual_status)
    try:
        expected_state.upper().should.equal(actual_status.upper())
    except AssertionError as e:
        LogHelper.error(e.message)
        raise e
Пример #22
0
    def activate_auto(self, username):
        cmd = '"' + self.mozyutil + '"' + " /autoactivate " + username
        print cmd
        result = CmdHelper.run(cmd)

        if "Error" in result:
            LogHelper.error("Activation Failed with an Error: %s" % result)
            return False
        else:
            return True
Пример #23
0
    def activate_productkey(self, email, password, productkey):
        cmd = '"' + self.mozyutil + '"' + " /activate " + email + " " + password + " /productkey " + productkey
        print cmd
        result = CmdHelper.run(cmd)

        if "Error" in result:
            LogHelper.error("Activation Failed with an Error: %s" % result)
            return False
        else:
            return True
 def input_edit_content(edit, content):
     result = False
     LogHelper.info(content)
     try:
         edit.type_keys(content)
     except NotImplementedError as e:
         LogHelper.error(e.message)
     else:
         result = True
     return result
 def click_button(button):
     result = False
     try:
         button.set_focus()
         button.Click()
     except NotImplementedError as e:
         LogHelper.error(e.message)
     else:
         result = True
     return result
 def click_radio_button(radio_button):
     result = False
     try:
         radio_button.set_focus()
         radio_button.CheckByClick()
     except NotImplementedError as e:
         LogHelper.error(e.message)
     else:
         result = True
     return result
Пример #27
0
 def search_partner(cls, partnername = None,):
     try:
         Page.locate_element(cls.xpaths['partnerSearchTxtBox']).send_keys(partnername)
         Page.locate_element(cls.xpaths['partnerSubmitSearch']).click()
         Page.delayed_click(cls.xpaths['partnerLink'], sleep_time=5)
         return True
     except Exception:
         LogHelper.error("Search partner failed.")
         # Page.quit()
         return False
 def verify_ui(self):
     for i in range(3):
         try:
             self.locate_element(self.xpaths['folder_list'], wait_time=60).is_displayed()
             LogHelper.info('Folder list is displayed for ' + self.machine_name)
             return
         except:
             self.navigate_to(self.machine_index)
     LogHelper.error('Folder list is not displayed for ' + self.machine_name)
     raise AssertionError('Folder list is not displayed for ' + self.machine_name)
def step_impl(context):
    #Generate dir full path
    LogHelper.info('Generate directory full path')
    root = ConfigAdapter.get_testdata_path()
    for row in context.table:
        dir_name = row.get('entity')
        full_path = os.path.join(root, dir_name)
        #remve unwanted empty string
        drill_down_list = filter(lambda x: len(x) > 0,
                                 full_path.split(os.path.sep))
        if RUNNER_CONFIG.get('PRODUCT').upper() in ('MAC', "LINUX",
                                                    'MAC_MACFRYR'):
            drill_down_list.insert(0, os.path.sep)

        # Drill down folders
        result = FreyjaPage.drill_down_folders(drill_down_list[0:-1])
        try:
            (result).should.be(True)
        except AssertionError:
            LogHelper.error("Frejya fail to Expand folder.")
            FreyjaPage.quit()
        else:
            # Select folder checkbox
            result = FreyjaPage.check_entity(full_path)
            try:
                (result).should.be(True)
            except AssertionError:
                LogHelper.error("Frejya fail to check folder checkbox.")
                FreyjaPage.quit()

            else:
                context.kpi = KPI(testcase=context.tc.name,
                                  category="Web",
                                  start_time=strftime("%Y-%m-%dT%H:%M:%SZ",
                                                      gmtime()),
                                  name="Frejya Create MZD",
                                  result="Fail",
                                  hostname=context.tc.machine_hostname,
                                  ip=context.tc.machine_ip,
                                  env=context.env)

                result = FreyjaPage.create_mzd()
                try:
                    (result).should.be(True)
                except AssertionError:
                    context.kpi.message = "Frejya fail to create MZD."
                    FreyjaPage.quit()
                else:
                    context.kpi.result = "SUCCESS"
                finally:
                    context.kpi.end_time = strftime("%Y-%m-%dT%H:%M:%SZ",
                                                    gmtime())
                    context.kpi.write_to_elasticsearch(context.senddb)
                    context.kpi = None
                    Page.quit()
Пример #30
0
    def activate_keyless(self, email, password, encryption_type="customkeytext", key=""):
        cmd = '"' + self.mozyutil + '"' + " /keylessactivate /email " + email + " /pass " + password + " /customkeytext " + key

        print cmd
        result = CmdHelper.run(cmd)

        if "Error" in result:
            LogHelper.error("Activation Failed with an Error: %s" % result)
            return False
        else:
            return True