Пример #1
0
def list(config, app_id, id, type):
    """List available application policies.

    Examples:

    List all group policies that belong to application 50:

        $ jaguar policy list 50 --type group

    List instance policy 101 that belongs to application 50:

        $ jaguar policy list 50 --type instance --id 101
    """
    try:
        url = config.server_url + '/v1/applications/' \
              + str(app_id) + '/policies/'
        if type:
            url += type + '/'
            if id > 0:
                url += str(id)

        rest = Rest(url, {'username': config.user})
        display(rest.get())

    except RestError as error:
        quit(error.message)
Пример #2
0
def list(config, app_id, id, type):
    """List available application policies.

    Examples:

    List all group policies that belong to application 50:

        $ jaguar policy list 50 --type group

    List instance policy 101 that belongs to application 50:

        $ jaguar policy list 50 --type instance --id 101
    """
    try:
        url = config.server['url'] + '/v1/applications/' \
              + str(app_id) + '/policies/'
        if type:
            url += type + '/'
            if id > 0:
                url += str(id)

        rest = Rest(url, {'username':config.user})
        display(rest.get())

    except RestError as error:
        quit(error.message)
Пример #3
0
def update(config, id, enable):
    """Update an application"""
    try:
        url = config.server_url + '/v1/applications/' + str(id)
        headers = {'username': config.user, 'Content-Type': 'application/json'}
        rest = Rest(url, headers)
        # check if the application exists
        response = rest.get()
        if response.status_code != requests.codes.ok:
            quit('Error: Application ' + str(id) + ' does not exist.')
        result = response.json()
        # update the field
        result['enabled'] = enable
        # post the data back
        data = json.dumps(result)
        rest = Rest(url, headers, data)
        display(rest.put())
    except RestError as error:
        quit(error.message)
Пример #4
0
def list(config, id):
    """List registered applications.

    Examples:

    $ jaguar application list

    $ jaguar application list --id 50
    """
    try:
        if id > 0:
            url = config.server_url + '/v1/applications/' + str(id)
        else:
            url = config.server_url + '/v1/applications'
        headers = {'username': config.user}
        rest = Rest(url, headers)
        display(rest.get())

    except RestError as error:
        quit(error.message)
Пример #5
0
class PeerApi(IPeerApi):
    def __init__(self, domain):
        # type: (str) -> None
        self.__rest = Rest(domain)

    def create_request(self, param):
        """
        Send a PeerObject create request
        http://35.200.46.204/#/1.peers/peer

        :param CreateRequestParams params: Parameters for creating a PeerObject
        :return: Information to identify the object
        :rtype: PeerInfo
        """
        try:
            response = self.__rest.post("peers", param.json(), 201)
        except json.JSONDecodeError as e:
            raise MyException(e.msg)

        return PeerInfo(response["params"]["peer_id"], response["params"]["token"])

    def listen_event(self, peer_info):
        """
        Get an event of PeerObject
        http://35.200.46.204/#/1.peers/peer_event

        :param PeerInfo peer_info: Indicates which peer object to subscribe events
        :return: An event from PeerObject
        :rtype: PeerEvent
        """
        try:
            response = self.__rest.get(
                "peers/{}/events?token={}".format(peer_info.id(), peer_info.token()),
                200,
            )
        except json.JSONDecodeError as e:
            raise MyException(e.msg)

        return PeerEvent(response)

    def delete_request(self, peer_info):
        """
        Send a Delete Request of PeerObject
        Accessing DELETE /peers API Internally
        http://35.200.46.204/#/1.peers/peer_destroy

        :param PeerInfo peer_info: Indicates which peer object to be deleted
        :return: Delete succeed or not
        :rtype: bool
        """
        try:
            self.__rest.delete(
                "peers/{}?token={}".format(peer_info.id(), peer_info.token()), 204
            )
        except json.JSONDecodeError as e:
            raise MyException(e.msg)

        return True

    def status_request(self, peer_info):
        """
        Request status of Peer Object
        Accessing GET /peers/{peer_id}/status API Internally
        http://35.200.46.204/#/1.peers/peer_status

        :param PeerInfo peer_info: Indicates which peer object to be deleted
        :return: Status of the PeerObject
        :rtype: PeerStatus
        """
        json = self.__rest.get(
            "peers/{}/status?token={}".format(peer_info.id(), peer_info.token()), 200
        )
        return PeerStatus(json["peer_id"], json["disconnected"])