Пример #1
0
    def setSSHAccess(self, url, engine_ssh_key):
        """
            Sets ssh access for this host from the managment server.
        """
        self.message = "SUCCESS"
        self.status = "OK"
        self.rc = True
        strKey = None

        # TODO remove legacy
        if deployUtil.getBootstrapInterfaceVersion() == 1 and \
                engine_ssh_key is None:
            vdcAddress = None
            vdcPort = None

            vdcAddress, vdcPort = deployUtil.getAddress(url)
            if vdcAddress is not None:
                strKey = deployUtil.getAuthKeysFile(vdcAddress, vdcPort)
                if strKey is None:
                    self.rc = False
                    self.message = "Failed to retrieve server SSH key."
            else:
                self.message = "Failed to extract server address."
                self.rc = False
        else:
            try:
                with open(engine_ssh_key) as key:
                    strKey = key.read()
            except Exception as e:
                self.message = "Failed to read SSH key file " + str(e)
                self.rc = False

        if self.rc:
            if not deployUtil.handleSSHKey(strKey):
                self.rc = False
                self.message = "Failed to write server's SSH key."

        if not self.rc:
            self.status = "FAIL"
        self._xmlOutput('SetSSHAccess', self.status, None, None, self.message)
        return self.rc
Пример #2
0
    def setSSHAccess(self, url, engine_ssh_key):
        """
            Sets ssh access for this host from the managment server.
        """
        self.message = "SUCCESS"
        self.status = "OK"
        self.rc = True
        strKey = None

        # TODO remove legacy
        if deployUtil.getBootstrapInterfaceVersion() == 1 and \
                engine_ssh_key is None:
            vdcAddress = None
            vdcPort = None

            vdcAddress, vdcPort = deployUtil.getAddress(url)
            if vdcAddress is not None:
                strKey = deployUtil.getAuthKeysFile(vdcAddress, vdcPort)
                if strKey is None:
                    self.rc = False
                    self.message = "Failed to retrieve server SSH key."
            else:
                self.message = "Failed to extract server address."
                self.rc = False
        else:
            try:
                strKey = file(engine_ssh_key).read()
            except Exception as e:
                self.message = "Failed to read SSH key file " + str(e)
                self.rc = False

        if self.rc:
            if not deployUtil.handleSSHKey(strKey):
                self.rc = False
                self.message = "Failed to write server's SSH key."

        if not self.rc:
            self.status = "FAIL"
        self._xmlOutput('SetSSHAccess', self.status, None, None, self.message)
        return self.rc
Пример #3
0
def main():
    """
Usage: vds_bootstrap.py [options] <url> <subject> <random_num>

options:
    -v <bootstrap inteface version> - default 1
    -O <organizationName>
    -t <systemTime>
    -f <firewall_rules_file> -- override firewall rules.
    -V - don't install virtualization service
    -g - install gluster service
obsolete options:
    -r <rev_num>
    """
    try:
        rev_num = None
        orgName = 'Red Hat Inc.'
        systime = None
        firewallRulesFile = None
        engine_ssh_key = None
        installVirtualizationService = True
        installGlusterService = False
        bridgeName = None
        opts, args = getopt.getopt(sys.argv[1:], "v:r:O:t:f:S:n:u:B:Vg")
        for o, v in opts:
            if o == "-v":
                deployUtil.setBootstrapInterfaceVersion(int(v))
            if o == "-r":
                rev_num = v
            if o == "-O":
                orgName = v
            if o == "-t":
                systime = v
            if o == "-V":
                installVirtualizationService = False
            if o == "-g":
                installGlusterService = True
            elif o == '-f':
                firewallRulesFile = v
                NEEDED_SERVICES.append('iptables')
            elif o == '-S':
                engine_ssh_key = v
            elif o == '-B':
                bridgeName = v

        url = args[0]
        subject = args[1]
        random_num = args[2]
        # Where is REVISION defined ????
        #if not rev_num:
        #    rev_num = REVISION
    except:
        print main.__doc__
        return False

    #
    # miniyum setup must be done first as process
    # is probably going to be reexecute with
    # proper selinux role
    #
    miniyum = None
    if deployUtil.getBootstrapInterfaceVersion() >= 2:
        try:
            from miniyum import MiniYum

            miniyumsink = myminiyumsink()
            MiniYum.setup_log_hook(sink=miniyumsink)
            extraLog = open(LOGFILE, "a")
            miniyum = MiniYum(sink=miniyumsink, extraLog=extraLog)
            miniyum.selinux_role()
        except:
            logging.error("MiniYum selinux setup failed", exc_info=True)
            print "<BSTRAP component='RHEV_INSTALL' status='FAIL'/>"
            return False

    logging.debug('**** Start VDS Validation ****')
    try:
        ret = VdsValidation(
            url, subject, random_num, rev_num, orgName, systime,
            firewallRulesFile, engine_ssh_key,
            installVirtualizationService, installGlusterService,
            bridgeName, miniyum
        )
    except:
        logging.error("VDS validation failed", exc_info=True)
        logging.error(main.__doc__)
        logging.debug("<BSTRAP component='RHEV_INSTALL' status='FAIL'/>")
        print "<BSTRAP component='RHEV_INSTALL' status='FAIL'/>"
        return False
    else:
        message = ("<BSTRAP component='RHEV_INSTALL' status=")
        if ret:
            message += ("'OK'/>")
        else:
            message += ("'FAIL'/>")

        print(message)
        logging.debug(message)

    logging.debug('**** End VDS Validation ****')
    sys.stdout.flush()
    return ret
Пример #4
0
def main():
    """
Usage: vds_bootstrap.py [options] <url> <subject> <random_num>

options:
    -v <bootstrap inteface version> - default 1
    -O <organizationName>
    -t <systemTime>
    -f <firewall_rules_file> -- override firewall rules.
    -V - don't install virtualization service
    -g - install gluster service
obsolete options:
    -r <rev_num>
    """
    try:
        rev_num = None
        orgName = 'Red Hat Inc.'
        systime = None
        firewallRulesFile = None
        engine_ssh_key = None
        installVirtualizationService = True
        installGlusterService = False
        bridgeName = None
        opts, args = getopt.getopt(sys.argv[1:], "v:r:O:t:f:S:n:u:B:Vg")
        for o, v in opts:
            if o == "-v":
                deployUtil.setBootstrapInterfaceVersion(int(v))
            if o == "-r":
                rev_num = v
            if o == "-O":
                orgName = v
            if o == "-t":
                systime = v
            if o == "-V":
                installVirtualizationService = False
            if o == "-g":
                installGlusterService = True
            elif o == '-f':
                firewallRulesFile = v
                NEEDED_SERVICES.append('iptables')
            elif o == '-S':
                engine_ssh_key = v
            elif o == '-B':
                bridgeName = v

        url = args[0]
        subject = args[1]
        random_num = args[2]
        # Where is REVISION defined ????
        # if not rev_num:
        #    rev_num = REVISION
    except:
        print main.__doc__
        return False

    #
    # miniyum setup must be done first as process
    # is probably going to be reexecute with
    # proper selinux role
    #
    miniyum = None
    if deployUtil.getBootstrapInterfaceVersion() >= 2:
        try:
            from miniyum import MiniYum

            miniyumsink = myminiyumsink()
            MiniYum.setup_log_hook(sink=miniyumsink)
            extraLog = open(LOGFILE, "a")
            miniyum = MiniYum(sink=miniyumsink, extraLog=extraLog)
            miniyum.selinux_role()
        except:
            logging.error("MiniYum selinux setup failed", exc_info=True)
            print "<BSTRAP component='RHEV_INSTALL' status='FAIL'/>"
            return False

    logging.debug('**** Start VDS Validation ****')
    try:
        ret = VdsValidation(url, subject, random_num, rev_num, orgName,
                            systime, firewallRulesFile, engine_ssh_key,
                            installVirtualizationService,
                            installGlusterService, bridgeName, miniyum)
    except:
        logging.error("VDS validation failed", exc_info=True)
        logging.error(main.__doc__)
        logging.debug("<BSTRAP component='RHEV_INSTALL' status='FAIL'/>")
        print "<BSTRAP component='RHEV_INSTALL' status='FAIL'/>"
        return False
    else:
        message = ("<BSTRAP component='RHEV_INSTALL' status=")
        if ret:
            message += ("'OK'/>")
        else:
            message += ("'FAIL'/>")

        print(message)
        logging.debug(message)

    logging.debug('**** End VDS Validation ****')
    sys.stdout.flush()
    return ret