Esempio n. 1
0
    def status(self, urns, credentials):
        options = self.format_options()
        logger.debug("%s Options: %s" % (
            self.typee,
            options,
        ))
        # Credentials must be sent in the proper format
        credentials = self.format_credentials(credentials)
        try:
            params = [
                urns,
                credentials,
                options,
            ]
            result = self.Status(*params)
            logger.info("\n\n\n%s Status result=%s\n\n\n" % (
                self.typee,
                result,
            ))
            return (result.get("value").get("geni_urn"),
                    result.get("value").get("geni_slivers"))

        except Exception as e:
            err = "%s Status failure: %s" % (self.typee, str(e))
            raise exceptions.RPCError(err)
Esempio n. 2
0
    def perform_operational_action(self, urns, credentials, action,
                                   best_effort):
        options = self.format_options(best_effort=best_effort)
        logger.debug("%s Options: %s" % (
            self.typee,
            options,
        ))
        # Credentials must be sent in the proper format
        credentials = self.format_credentials(credentials)
        try:
            params = [
                urns,
                credentials,
                action,
                options,
            ]
            result = self.PerformOperationalAction(*params)
            logger.info("\n\n\n%s PerformOperationalAction result=%s\n\n\n" % (
                self.typee,
                result,
            ))
            return result.get("value")

        except Exception as e:
            err = "%s PerformOpAction failure: %s" % (self.typee, str(e))
            raise exceptions.RPCError(err)
Esempio n. 3
0
    def allocate(self, slice_urn, credentials, rspec, end_time):
        options = self.format_options(end_time=end_time)
        logger.debug("%s Options: %s" % (
            self.typee,
            options,
        ))
        # Credentials must be sent in the proper format
        credentials = self.format_credentials(credentials)
        try:
            params = [
                slice_urn,
                credentials,
                rspec,
                options,
            ]
            result = self.Allocate(*params)
            logger.info("\n\n\n%s Allocate result=%s\n\n\n" % (
                self.typee,
                result,
            ))
            return (result.get("value").get("geni_rspec"),
                    result.get("value").get("geni_slivers"))

        except Exception as e:
            err = "%s Allocate failure: %s" % (self.typee, str(e))
            raise exceptions.RPCError(err)
Esempio n. 4
0
    def renew(self, urns, credentials, expiration_time, best_effort):
        options = self.format_options(best_effort=best_effort)
        logger.debug("%s Options: %s" % (
            self.typee,
            options,
        ))
        # Credentials must be sent in the proper format
        credentials = self.format_credentials(credentials)
        try:
            params = [
                urns,
                credentials,
                expiration_time,
                options,
            ]
            result = self.Renew(*params)
            logger.info("\n\n\n%s Renew result=%s\n\n\n" % (
                self.typee,
                result,
            ))
            return result.get("value")

        except Exception as e:
            err = "%s Renew failure: %s" % (self.typee, str(e))
            raise exceptions.RPCError(err)
Esempio n. 5
0
    def get_version(self):
        try:
            logger.debug("Get the required information of the peer")
            rspec_version = self.GetVersion()
            logger.debug("Rspec version: %s" % (rspec_version, ))
            values = rspec_version.get("value")
            # We need at least the type and the (supported) request version
            self.geni_type = rspec_version.get("code").get("am_type")
            self.geni_api_version = values.get("geni_api")

            if not self.geni_type:  # we assume GENI as default
                self.geni_type = "geni"

            return (self.geni_type, self.geni_api_version)

        except Exception as e:
            raise exceptions.RPCError("SFA GetVersion failure: %s" % str(e))
Esempio n. 6
0
    def list_resources(self, credentials, available, inner_call=True):
        options = self.format_options(available=available, compress=False)
        options["inner_call"] = inner_call

        # Credentials must be sent in the proper format
        credentials = self.format_credentials(credentials)
        logger.debug("%s Options: %s" % (self.typee, options,))
        try:
            params = [credentials, options, ]
            result = self.ListResources(*params)
            logger.info("\n\n\n%s ListResources result=%s\n\n\n" %
                        (self.typee, result,))
            return result

        except Exception as e:
            err = "%s ListResources failure: %s" % (self.typee, str(e))
            raise exceptions.RPCError(err)
Esempio n. 7
0
    def delete(self, urns, credentials, best_effort):
        options = self.format_options(best_effort=best_effort)
        logger.debug("%s Options: %s" % (self.typee, options,))
        # Credentials must be sent in the proper format
        credentials = self.format_credentials(credentials)
        try:
            params = [urns, credentials, options, ]
            result = self.Delete(*params)
            logger.info("\n\n\n%s Delete result=%s\n\n\n" %
                        (self.typee, result,))

            status, err = self.__check_errors(result)
            if status is True:
                return result.get("value")

        except Exception as e:
            err = "%s Delete failure: %s" % (self.typee, str(e))

        raise exceptions.RPCError(err)
Esempio n. 8
0
    def list_resources(self, credentials, available):
        options = self.format_options(available)
        logger.debug("Options: %s" % (options, ))
        try:
            # Get the list of computing resources
            params = [
                credentials,
                options,
            ]
            rspec = self.ListResources(*params)
            # if available==True, we should remove the computing
            # "local reserved" resources (stored in a mongoDB table)
            if available is True:
                rspec = self.__filter_list_resources_rspec(rspec)

            return rspec

        except Exception as e:
            raise exceptions.RPCError("CRMGeniv2 ListResources failure: %s" %
                                      str(e))
Esempio n. 9
0
    def describe(self, urns, credentials):
        options = self.format_options()
        logger.debug("%s Options: %s" % (self.typee, options,))
        # Credentials must be sent in the proper format
        credentials = self.format_credentials(credentials)
        try:
            params = [urns, credentials, options, ]
            result = self.Describe(*params)
            logger.info("\n\n\n%s Describe result=%s\n\n\n" %
                        (self.typee, result,))

            status, err = self.__check_errors(result)
            if status is True:
                return (result.get("value").get("geni_rspec"),
                        result.get("value").get("geni_urn"),
                        result.get("value").get("geni_slivers"))

        except Exception as e:
            err = "%s Describe failure: %s" % (self.typee, str(e))

        raise exceptions.RPCError(err)
Esempio n. 10
0
    def provision(self, urns, credentials, best_effort, end_time, geni_users):
        options = self.format_options(best_effort=best_effort,
                                      end_time=end_time,
                                      users=geni_users)
        logger.debug("%s Options: %s" % (self.typee, options,))
        # Credentials must be sent in the proper format
        credentials = self.format_credentials(credentials)
        try:
            params = [urns, credentials, options, ]
            result = self.Provision(*params)
            logger.info("\n\n\n%s Provision result=%s\n\n\n" %
                        (self.typee, result,))

            status, err = self.__check_errors(result)
            if status is True:
                return (result.get("value").get("geni_rspec"),
                        result.get("value").get("geni_slivers"))

        except Exception as e:
            err = "%s Provision failure: %s" % (self.typee, str(e))

        raise exceptions.RPCError(err)
Esempio n. 11
0
    def list_resources(self, credentials, available):
        options = self.format_options(available)
        logger.debug("Options: %s" % (options, ))
        try:
            # Get the list of sdn networking resources
            params = [
                credentials,
                options,
            ]
            rspec = self.ListResources(*params)
            i = "\n\n[REMOVE] SDNGENIv2Adaptor ListResources rspec: %s\n\n" %\
                (str(rspec))
            logger.debug(i)
            # if available==True, we should remove the sdn networking
            # "local reserved" resources (stored in a mongoDB tables)
            if available is True:
                rspec = self.__decode_list_resources_rspec(rspec)

            return rspec

        except Exception as e:
            raise exceptions.RPCError("SDNRMGeniv2 ListResources failure: %s" %
                                      str(e))
Esempio n. 12
0
 def __init__(self, uri):
     SFAv2Client.__init__(self, uri)
     raise exceptions.RPCError("SDNRMGeniv2Adaptor not supported!")