Exemple #1
0
 def add_datacenter(self):
     vrops = Vrops()
     for dc in Vrops.get_datacenter(vrops,
                                    target=self.target,
                                    token=self.token,
                                    parentid=self.uuid):
         self.datacenter.append(
             Datacenter(target=self.target,
                        token=self.token,
                        name=dc['name'],
                        uuid=dc['uuid']))
    def create_vcenter_objects(self, target: str, token: str):
        vrops = Vrops()
        vcenter_adapter = Vrops.get_vcenter_adapter(vrops, target, token)
        if not vcenter_adapter:
            logger.critical(f'Could not get vcenter adapter!')
            return False
        logger.debug(f'Collecting vcenter: {vcenter_adapter.name}')

        datacenter = Vrops.get_datacenter(vrops, target, token,
                                          [vcenter_adapter.uuid])
        cluster = Vrops.get_cluster(vrops, target, token,
                                    [dc.uuid for dc in datacenter])
        datastores = Vrops.get_datastores(vrops, target, token,
                                          [dc.uuid for dc in datacenter])
        hosts = Vrops.get_hosts(vrops, target, token,
                                [cl.uuid for cl in cluster])
        vms = Vrops.get_vms(vrops, target, token, [hs.uuid for hs in hosts],
                            vcenter_adapter.uuid)

        for dc in datacenter:
            vcenter_adapter.add_datacenter(dc)
        for dc_object in vcenter_adapter.datacenter:
            logger.debug(f'Collecting datacenter: {dc_object.name}')
            for ds in datastores:
                if ds.parent == dc_object.uuid:
                    dc_object.add_datastore(ds)
                    logger.debug(f'Collecting datastore: {ds.name}')
            for cl in cluster:
                dc_object.add_cluster(cl)
            for cl_object in dc_object.clusters:
                logger.debug(f'Collecting cluster: {cl_object.name}')
                for hs in hosts:
                    if hs.parent == cl_object.uuid:
                        cl_object.add_host(hs)
                for hs_object in cl_object.hosts:
                    logger.debug(f'Collecting host: {hs_object.name}')
                    for vm in vms:
                        if vm.parent == hs_object.uuid:
                            hs_object.add_vm(vm)
                            logger.debug(f'Collecting VM: {vm.name}')
        return vcenter_adapter
Exemple #3
0
    def create_resource_objects(self, target: str, token: str) -> Vcenter:
        vrops = Vrops()
        vcenter_name, vcenter_uuid = Vrops.get_adapter(vrops, target, token)
        if not vcenter_name:
            return False
        logger.debug(f'Collecting vcenter: {vcenter_name}')

        datacenter = Vrops.get_datacenter(vrops, target, token, [vcenter_uuid])
        cluster_and_ds = Vrops.get_cluster_and_datastores(vrops, target, token, [dc.get('uuid') for dc in datacenter])

        cluster = [cl for cl in cluster_and_ds if cl.get('resourcekind') == "ClusterComputeResource"]
        dss = [ds for ds in cluster_and_ds if ds.get('resourcekind') == "Datastore"]

        hosts = Vrops.get_hosts(vrops, target, token, [cl.get('uuid') for cl in cluster])
        vms = Vrops.get_vms(vrops, target, token, [hs.get('uuid') for hs in hosts])

        vcenter = Vcenter(target, token, vcenter_uuid, vcenter_name)
        for dc in datacenter:
            vcenter.add_datacenter(dc)
        for dc_object in vcenter.datacenter:
            logger.debug(f'Collecting datacenter: {dc_object.name}')
            for ds in dss:
                if ds.get('parent') == dc_object.uuid:
                    dc_object.add_datastore(ds)
                    logger.debug(f'Collecting Datastore: {ds.get("name")}')
            for cl in cluster:
                dc_object.add_cluster(cl)
            for cl_object in dc_object.clusters:
                logger.debug(f'Collecting cluster: {cl_object.name}')
                for hs in hosts:
                    if hs.get('parent') == cl_object.uuid:
                        cl_object.add_host(hs)
                for hs_object in cl_object.hosts:
                    logger.debug(f'Collecting host: {hs_object.name}')
                    for vm in vms:
                        if vm.get('parent') == hs_object.uuid:
                            hs_object.add_vm(vm)
                            logger.debug(f'Collecting VM: {vm.get("name")}')
        return vcenter
Exemple #4
0
    def create_vcenter_objects(self, vrops, target: str, token: str,
                               query_specs: dict):
        vcenter_adapter, self.response_codes[target][
            "vcenter"] = Vrops.get_vcenter_adapter(vrops, target, token)
        # just one vcenter adapter supported
        vcenter_adapter = vcenter_adapter[0]

        if not vcenter_adapter:
            logger.critical(f'Could not get vcenter adapter!')
            return False
        logger.debug(f'Collecting vcenter: {vcenter_adapter.name}')

        datacenter, self.response_codes[target]["datacenters"] = \
            Vrops.get_datacenter(vrops, target, token, [vcenter_adapter.uuid], query_specs=query_specs)
        cluster, self.response_codes[target]["clusters"] = \
            Vrops.get_cluster(vrops, target, token, [dc.uuid for dc in datacenter], query_specs=query_specs)
        datastores, self.response_codes[target]["datastores"] = \
            Vrops.get_datastores(vrops, target, token, [dc.uuid for dc in datacenter], query_specs=query_specs)
        hosts, self.response_codes[target]["hosts"] = \
            Vrops.get_hosts(vrops, target, token, [cl.uuid for cl in cluster], query_specs=query_specs)
        vms, self.response_codes[target]["vms"] = \
            Vrops.get_vms(vrops, target, token, [hs.uuid for hs in hosts], vcenter_adapter.uuid, query_specs=query_specs)
        distributed_virtual_switchs, self.response_codes[target]["distributed_virtual_switch"] = \
            Vrops.get_dis_virtual_switch(vrops, target, token, [dc.uuid for dc in datacenter], query_specs=query_specs)

        vcenter_adapter.datacenter = list()
        for dc in datacenter:
            vcenter_adapter.datacenter.append(dc)
            logger.debug(f'Collecting datacenter: {dc.name}')

        for dc_object in vcenter_adapter.datacenter:
            dc_object.datastores = list()
            dc_object.clusters = list()
            dc_object.dvss = list()

            for ds in datastores:
                if ds.parent == dc_object.uuid:
                    dc_object.datastores.append(ds)
                    logger.debug(f'Collecting datastore: {ds.name}')
            for cl in cluster:
                if cl.parent == dc_object.uuid:
                    dc_object.clusters.append(cl)
                    logger.debug(f'Collecting cluster: {cl.name}')
            for cl_object in dc_object.clusters:
                cl_object.hosts = list()
                for hs in hosts:
                    if hs.parent == cl_object.uuid:
                        cl_object.hosts.append(hs)
                        logger.debug(f'Collecting host: {hs.name}')
                for hs_object in cl_object.hosts:
                    hs_object.vms = list()
                    for vm in vms:
                        if vm.parent == hs_object.uuid:
                            hs_object.vms.append(vm)
                            logger.debug(f'Collecting VM: {vm.name}')
            for dvs in distributed_virtual_switchs:
                if dvs.parent == dc_object.uuid:
                    dc_object.dvss.append(dvs)
                    logger.debug(
                        f'Collecting distributed virtual switch: {dvs.name}')
        return vcenter_adapter