Exemple #1
0
def cluster_list(args):
    obj = Cluster(args.ip, args.port)
    try:
        clusters = obj.cluster_list(args.tenant)
        output = []
        vdatacenterobj = VcenterDatacenter(args.ip, args.port)
        for cluster_uri in clusters:
            clobj = obj.cluster_show_uri(cluster_uri['id'])
            if(clobj):
                # add vdatacenter name to cluster object
                if('vcenter_data_center' in clobj and args.long):
                    vobj = vdatacenterobj.vcenterdatacenter_show_by_uri(
                        clobj['vcenter_data_center']['id'])
                    clobj['vcenter_data_center'] = vobj['name']
                output.append(clobj)

        if(len(output) > 0):
            if(args.verbose):
                return common.format_json_object(output)
            elif(args.long):

                TableGenerator(output,
                               ['name', 'vcenter_data_center']).printTable()
            else:
                TableGenerator(output, ['name']).printTable()

    except SOSError as e:
        common.format_err_msg_and_raise("list", "cluster",
                                        e.err_text, e.err_code)
Exemple #2
0
    def cluster_create(self, label, tenant, datacenter, vcenter):
        tenant_obj = Tenant(self.__ipAddr, self.__port)
        vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)

        if(tenant is None):
            tenant_uri = tenant_obj.tenant_getid()
        else:
            tenant_uri = tenant_obj.tenant_query(tenant)

        parms = {'name': label}

        # datacenter
        if(datacenter):
            # on failure, query raise exception
            parms['vcenter_data_center'] = \
                vdatacenterobj.vcenterdatacenter_query(
                    datacenter, vcenter, tenant)

        body = json.dumps(parms)

        (s, h) = common.service_json_request(
            self.__ipAddr, self.__port,
            "POST",
            Cluster.URI_TENANTS_CLUSTERS.format(tenant_uri),
            body)
        o = common.json_decode(s)
Exemple #3
0
    def cluster_update(self, name, tenant, datacenter, vcenter, label):
        '''
        update cluster with datacenter, label
        Parameters:
            name      : Name of the cluster
            tenant    : name of tenant
            datacenter: Name of datacenter
            vcenter   : name of vcenter
            label     : new name to existing cluster
        Returns:
            result of the action.
        '''
        parms = {}
        # new name
        if(label):
            parms['name'] = label

        # datacenter
        if(datacenter):
            vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)
            data_uri = vdatacenterobj.vcenterdatacenter_query(
                datacenter, vcenter, tenant)
            parms['vcenter_data_center'] = data_uri

        # get the cluster uri
        cluster_uri = self.cluster_query(name, tenant)

        body = json.dumps(parms)
        common.service_json_request(self.__ipAddr, self.__port, "PUT",
                                    Cluster.URI_CLUSTER.format(cluster_uri),
                                    body)
        return
    def cluster_create(self, label, tenant, datacenter, vcenter):
        tenant_obj = Tenant(self.__ipAddr, self.__port)
        vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)

        if(tenant is None):
            tenant_uri = tenant_obj.tenant_getid()
        else:
            tenant_uri = tenant_obj.tenant_query(tenant)

        parms = {'name': label}

        # datacenter
        if(datacenter):
            # on failure, query raise exception
            parms['vcenter_data_center'] = \
                vdatacenterobj.vcenterdatacenter_query(
                    datacenter, vcenter, tenant)

        body = json.dumps(parms)

        (s, h) = common.service_json_request(
            self.__ipAddr, self.__port,
            "POST",
            Cluster.URI_TENANTS_CLUSTERS.format(tenant_uri),
            body)
        o = common.json_decode(s)
    def cluster_create(self, label, tenant, project, datacenter, vcenter):
        tenant_obj = Tenant(self.__ipAddr, self.__port)
        vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)
        projectobj = Project(self.__ipAddr, self.__port)

        if(tenant == None):
            tenant_uri = tenant_obj.tenant_getid()
        else:
            tenant_uri = tenant_obj.tenant_query(tenant)
                
        parms = { 'name'            : label
                   }
        #project
        if(project):
            if(tenant):
                projectname = tenant + "/" + project
            else:
                projectname = "" + "/" + project
            #on failure, query raise exception
            parms['project'] = projectobj.project_query(projectname)
            
        #datacenter
        if(datacenter):
            #on failure, query raise exception
            parms['vcenter_data_center'] = vdatacenterobj.vcenterdatacenter_query(datacenter, vcenter)

        body = json.dumps(parms)

        (s, h) = common.service_json_request(self.__ipAddr, self.__port,
                                             "POST",
                                             Cluster.URI_TENANTS_CLUSTERS.format(tenant_uri),
                                             body)
        o = common.json_decode(s)
def cluster_list(args):
    obj = Cluster(args.ip, args.port)
    try:
        clusters = obj.cluster_list(args.tenant)
        output = []
        vdatacenterobj = VcenterDatacenter(args.ip, args.port)
        for cluster_uri in clusters:
            clobj = obj.cluster_show_uri(cluster_uri['id'])
            if(clobj):
                # add vdatacenter name to cluster object
                if('vcenter_data_center' in clobj and args.long):
                    vobj = vdatacenterobj.vcenterdatacenter_show_by_uri(
                        clobj['vcenter_data_center']['id'])
                    clobj['vcenter_data_center'] = vobj['name']
                output.append(clobj)

        if(len(output) > 0):
            if(args.verbose):
                return common.format_json_object(output)
            elif(args.long):

                TableGenerator(output,
                               ['name', 'vcenter_data_center']).printTable()
            else:
                TableGenerator(output, ['name']).printTable()

    except SOSError as e:
        common.format_err_msg_and_raise("list", "cluster",
                                        e.err_text, e.err_code)
    def cluster_update(self, name, tenant, datacenter, vcenter, label):
        '''
        update cluster with datacenter, label
        Parameters:
            name      : Name of the cluster
            tenant    : name of tenant
            datacenter: Name of datacenter
            vcenter   : name of vcenter
            label     : new name to existing cluster
        Returns:
            result of the action.
        '''
        parms = {}
        # new name
        if(label):
            parms['name'] = label

        # datacenter
        if(datacenter):
            vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)
            data_uri = vdatacenterobj.vcenterdatacenter_query(
                datacenter, vcenter, tenant)
            parms['vcenter_data_center'] = data_uri

        # get the cluster uri
        cluster_uri = self.cluster_query(name, tenant)

        body = json.dumps(parms)
        common.service_json_request(self.__ipAddr, self.__port, "PUT",
                                    Cluster.URI_CLUSTER.format(cluster_uri),
                                    body)
        return
    def cluster_update(self,
                       name,
                       tenant,
                       datacenter,
                       vcenter,
                       label,
                       newdatacenter,
                       newvcenter,
                       autoexportsenabled,
                       updateExports=False):
        '''
        update cluster with datacenter, label
        Parameters:
            name      : Name of the cluster
            tenant    : name of tenant
            datacenter: Name of datacenter
            vcenter   : name of vcenter
            ndatacenter : name of new datacenter
            nvcenter : name of the new vcenter 
            label     : new name to existing cluster
        Returns:
            result of the action.
        '''
        parms = {}
        # new name
        if (label):
            parms['name'] = label

        if (autoexportsenabled is not None):
            parms['auto_export_enabled'] = autoexportsenabled

        # datacenter
        if (newdatacenter is not None):
            vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)
            data_uri = vdatacenterobj.vcenterdatacenter_query(
                newdatacenter, newvcenter, tenant)

            parms['vcenter_data_center'] = data_uri

        # get the cluster uri query to the right cluster ..

        cluster_uri = self.cluster_query(name, datacenter, vcenter, tenant)

        if (updateExports is not None):
            cluster_uri = cluster_uri + "?update-exports=" + updateExports

        body = json.dumps(parms)
        common.service_json_request(self.__ipAddr, self.__port, "PUT",
                                    Cluster.URI_CLUSTER.format(cluster_uri),
                                    body)
        return
    def cluster_update(self, name, tenant, datacenter, vcenter, label, newdatacenter, newvcenter, autoexportsenabled, updateExports=False):
        '''
        update cluster with datacenter, label
        Parameters:
            name      : Name of the cluster
            tenant    : name of tenant
            datacenter: Name of datacenter
            vcenter   : name of vcenter
            ndatacenter : name of new datacenter
            nvcenter : name of the new vcenter 
            label     : new name to existing cluster
        Returns:
            result of the action.
        '''
        parms = {}
        # new name
        if(label):
            parms['name'] = label
        
        if(autoexportsenabled is not None):
            parms['auto_export_enabled'] = autoexportsenabled
        
        # datacenter
        if(newdatacenter is not None):
            vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)
            data_uri = vdatacenterobj.vcenterdatacenter_query(
                newdatacenter, newvcenter, tenant)
            
            parms['vcenter_data_center'] = data_uri

        # get the cluster uri query to the right cluster ..
        
        cluster_uri = self.cluster_query(name, datacenter , vcenter ,tenant)


        if(updateExports is not None):
            cluster_uri = cluster_uri + "?update-exports=" + updateExports


        body = json.dumps(parms)
        common.service_json_request(self.__ipAddr, self.__port, "PUT",
                                    Cluster.URI_CLUSTER.format(cluster_uri),
                                    body)
        return
    def vcenter_get_datacenters(self, label, tenantname, xml=False):
        '''
        Makes a REST API call to retrieve details
        of a vcenter  based on its UUID
        '''

        uri = self.vcenter_query(label, tenantname)

        (s, h) = common.service_json_request(
            self.__ipAddr, self.__port, "GET",
            VCenter.URI_VCENTER_DATACENTERS.format(uri), None, None, xml)

        o = common.json_decode(s)

        from vcenterdatacenter import VcenterDatacenter
        obj = VcenterDatacenter(self.__ipAddr, self.__port)

        dtlslst = obj.vcenterdatacenter_get_details(o['vcenter_data_center'])

        return dtlslst
    def vcenter_get_datacenters(self, label, tenantname, xml=False):
        """
        Makes a REST API call to retrieve details of a vcenter  based on its UUID
        """

        uri = self.vcenter_query(label, tenantname)

        (s, h) = common.service_json_request(
            self.__ipAddr, self.__port, "GET", VCenter.URI_VCENTER_DATACENTERS.format(uri), None, None, xml
        )

        o = common.json_decode(s)

        from vcenterdatacenter import VcenterDatacenter

        obj = VcenterDatacenter(self.__ipAddr, self.__port)

        dtlslst = obj.vcenterdatacenter_get_details(o["vcenter_data_center"])

        return dtlslst
Exemple #12
0
    def vcenter_get_datacenters(self, label, tenantname, xml=False):
        '''
        Makes a REST API call to retrieve details
        of a vcenter  based on its UUID
        '''

        uri = self.vcenter_query(label, tenantname)
        if (tenantname is None or
            tenantname == "") :
            tenantname = VCenter.VCENTERS_FROM_ALL_TENANTS
            
        (s, h) = common.service_json_request(
            self.__ipAddr, self.__port, "GET",
            VCenter.URI_VCENTER_DATACENTERS.format(uri, self.get_tenant_uri_from_name(tenantname)),
            None, None, xml)

        o = common.json_decode(s)

        from vcenterdatacenter import VcenterDatacenter
        obj = VcenterDatacenter(self.__ipAddr, self.__port)

        dtlslst = obj.vcenterdatacenter_get_details(o['vcenter_data_center'])

        return dtlslst
Exemple #13
0
 def get_datacenter_uri(self, datacenter, vcenter):
     vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)
     return vdatacenterobj.vcenterdatacenter_query(datacenter, vcenter)
    def get_vcenterdatacenter_id(self, datacenterName, vcenterName, tenantName):

        vcenterDatacenterObj = VcenterDatacenter(self.__ipAddr, self.__port)
        vcenterDatacenterId = vcenterDatacenterObj.vcenterdatacenter_query(datacenterName, vcenterName, tenantName)

        return vcenterDatacenterId
 def get_datacenter_uri(self, datacenter, vcenter):
     vdatacenterobj = VcenterDatacenter(self.__ipAddr, self.__port)
     return vdatacenterobj.vcenterdatacenter_query(datacenter, vcenter)