Example #1
0
def _main():
    obj = CloudI()
    assert (obj.nodes_add('["foobar1@hostX", "foobar2@hostY"]') ==
            '{"success":true}')
    assert (obj.nodes_remove('["foobar1@hostX", "foobar2@hostY"]') ==
            '{"success":true}')
    assert (obj.nodes_remove('["foobar1@hostX", "foobar2@hostY"]') ==
            '{"success":false,"error":"{node_not_found,foobar1@hostX}"}')

    assert obj.acl_remove('["all"]') == '{"success":true}'
    assert (obj.acl_add('{"\'all\'": ["\'database\'", "\'tests\'"]}') ==
            '{"success":true}')

    # start extra instances of the http_req test
    services_added = obj.services_add("""\
[{"prefix": "/json_rpc/1/",
  "module": "'cloudi_service_test_http_req'"},
 {"prefix": "/json_rpc/2/",
  "module": "'cloudi_service_test_http_req'"},
 {"prefix": "/json_rpc/3/",
  "module": "'cloudi_service_test_http_req'"},
 {"prefix": "/json_rpc/4/",
  "module": "'cloudi_service_test_http_req'"}]
""")
    if sys.version_info[0] >= 3:
        assert isinstance(services_added, str)
    else:
        assert isinstance(services_added, unicode)
    response = json.loads(services_added)
    assert response['success']
    assert len(response['services_add']) == 4

    url = 'http://localhost:6464'
    assert (urlopen(url + '/json_rpc/1/erlang.xml?value=5').read() ==
            b'<http_test><value>5</value></http_test>')
    assert (urlopen(url + '/json_rpc/2/erlang.xml?value=6').read() ==
            b'<http_test><value>6</value></http_test>')
    assert (urlopen(url + '/json_rpc/3/erlang.xml?value=7').read() ==
            b'<http_test><value>7</value></http_test>')
    assert (urlopen(url + '/json_rpc/4/erlang.xml?value=8').read() ==
            b'<http_test><value>8</value></http_test>')

    # remove the extra instances of the http_req test
    assert (obj.services_remove(
        '["%s", "%s", "%s", "%s"]' %
        tuple(response['services_add'])) == '{"success":true}')
Example #2
0
def _main():
    obj = CloudI()
    assert obj.code_path_add('"/foo/bar"') == '{"success":false,"error":"bad_directory"}'
Example #3
0
File: run.py Project: up73k/CloudI
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__)).split(os.path.sep)[:-2] +
        ['service_api', 'python']))

import time, urllib2

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert (obj.nodes_add('[foobar1@hostX, foobar2@hostY]') == 'ok')
    assert (obj.nodes_remove('[foobar1@hostX, foobar2@hostY]') == 'ok')
    assert (obj.nodes_remove('[foobar1@hostX, foobar2@hostY]') ==
            '{error,{node_not_found,foobar1@hostX}}')

    assert (obj.acl_remove('[all]') == 'ok')
    assert (obj.acl_add('[{all, [database, tests]}]') == 'ok')

    # start extra instances of the http_req test
    services_added = obj.services_add("""\
[[{prefix, "/json_rpc/1/"},
  {module, cloudi_service_test_http_req}],
 [{prefix, "/json_rpc/2/"},
  {module, cloudi_service_test_http_req}],
 [{prefix, "/json_rpc/3/"},
Example #4
0
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__))
               .split(os.path.sep)[:-2] + ['service_api', 'python']
    )
)

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert obj.nodes_add('[foobar1@hostX, foobar2@hostY]') == 'ok'
    assert obj.nodes_remove('[foobar1@hostX, foobar2@hostY]') == 'ok'
    # removing entries that do not exist, does not fail,
    # since the request is valid (despite the fact it is pointless)
    assert obj.nodes_remove('[foobar1@hostX, foobar2@hostY]') == 'ok'

    assert obj.acl_remove('[all]') == 'ok'
    assert obj.acl_add('[{all, [database, tests]}]') == 'ok'

    # remove the hexpi services
    services = obj.services()
    assert obj.services_remove('[%s, %s]' % (
        str(services[1][0]), str(services[4][0]),
    )) == 'ok'
Example #5
0
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__)).split(os.path.sep)[:-2] +
        ['service_api', 'python']))

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert obj.loglevel_set('trace') == 'ok'
    print('logging turned on')
Example #6
0
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__)).split(os.path.sep)[:-2] +
        ['service_api', 'python']))

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert (obj.code_path_add('"/foo/bar"') == '{error,bad_directory}')
Example #7
0
def _main():
    obj = CloudI()
    assert obj.code_path_add('"/foo/bar"') == '{"success":false,"error":"bad_directory"}'
Example #8
0
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__)).split(os.path.sep)[:-2] +
        ['service_api', 'python']))

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert obj.nodes_add('[foobar1@hostX, foobar2@hostY]') == 'ok'
    assert obj.nodes_remove('[foobar1@hostX, foobar2@hostY]') == 'ok'
    assert obj.nodes_remove('[foobar1@hostX, foobar2@hostY]'
                            ) == '{error,{node_not_found,foobar1@hostX}}'

    assert obj.acl_remove('[all]') == 'ok'
    assert obj.acl_add('[{all, [database, tests]}]') == 'ok'

    # remove the hexpi services
    services = obj.services()
    assert obj.services_remove('[%s, %s]' % (
        str(services[1][0]),
        str(services[4][0]),
    )) == 'ok'
Example #9
0
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__))
               .split(os.path.sep)[:-2] + ['service_api', 'python']
    )
)

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert obj.loglevel_set('trace') == 'ok'
    print 'logging turned on'

Example #10
0
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__)).split(os.path.sep)[:-2] +
        ['service_api', 'python']))

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert obj.loglevel_set('off') == 'ok'
    print('logging turned off')
Example #11
0
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__)).split(os.path.sep)[:-2] +
        ['service_api', 'python']))

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert (obj.logging_level_set('trace') == 'ok')
    print('logging turned on')
Example #12
0
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__))
               .split(os.path.sep)[:-2] + ['service_api', 'python']
    )
)

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert obj.code_path_add('"/foo/bar"') == '{error,bad_directory}'

Example #13
0
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__))
               .split(os.path.sep)[:-2] + ['service_api', 'python']
    )
)

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert(obj.logging_level_set('off') == 'ok')
    print('logging turned off')

Example #14
0
File: run.py Project: CloudI/CloudI
def _main():
    obj = CloudI()
    assert (
        obj.nodes_add('["foobar1@hostX", "foobar2@hostY"]') ==
        '{"success":true}'
    )
    assert (
        obj.nodes_remove('["foobar1@hostX", "foobar2@hostY"]') ==
        '{"success":true}'
    )
    assert (
        obj.nodes_remove('["foobar1@hostX", "foobar2@hostY"]') ==
        '{"success":false,"error":"{node_not_found,foobar1@hostX}"}'
    )

    assert obj.acl_remove('["all"]') == '{"success":true}'
    assert (
        obj.acl_add('{"\'all\'": ["\'database\'", "\'tests\'"]}') ==
        '{"success":true}'
    )

    # start extra instances of the http_req test
    services_added = obj.services_add("""\
[{"prefix": "/json_rpc/1/",
  "module": "'cloudi_service_test_http_req'"},
 {"prefix": "/json_rpc/2/",
  "module": "'cloudi_service_test_http_req'"},
 {"prefix": "/json_rpc/3/",
  "module": "'cloudi_service_test_http_req'"},
 {"prefix": "/json_rpc/4/",
  "module": "'cloudi_service_test_http_req'"}]
""")
    if sys.version_info[0] >= 3:
        assert isinstance(services_added, str)
    else:
        assert isinstance(services_added, unicode)
    response = json.loads(services_added)
    assert response['success']
    assert len(response['services_add']) == 4

    url = 'http://localhost:6464'
    assert (
        urlopen(url + '/json_rpc/1/erlang.xml?value=5').read() ==
        b'<http_test><value>5</value></http_test>'
    )
    assert (
        urlopen(url + '/json_rpc/2/erlang.xml?value=6').read() ==
        b'<http_test><value>6</value></http_test>'
    )
    assert (
        urlopen(url + '/json_rpc/3/erlang.xml?value=7').read() ==
        b'<http_test><value>7</value></http_test>'
    )
    assert (
        urlopen(url + '/json_rpc/4/erlang.xml?value=8').read() ==
        b'<http_test><value>8</value></http_test>'
    )

    # remove the extra instances of the http_req test
    assert (
        obj.services_remove(
            '["%s", "%s", "%s", "%s"]' % tuple(response['services_add'])
        ) == '{"success":true}'
    )
Example #15
0
def _main():
    obj = CloudI()
    assert obj.logging_level_set('"off"') == '{"success":true}'
    print('logging turned off')
Example #16
0
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
#

import sys, os

sys.path.append(
    os.path.sep.join(os.path.dirname(os.path.abspath(__file__)).split(os.path.sep)[:-2] + ["service_api", "python"])
)

import time

if __name__ == "__main__":
    from cloudi_service_api import CloudI

    obj = CloudI()
    assert obj.logging_level_set("trace") == "ok"
    print("logging turned on")
Example #17
0
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
# DAMAGE.
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__))
               .split(os.path.sep)[:-2] + ['service_api', 'python']
    )
)

import time

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert obj.loglevel_set('off') == 'ok'
    print 'logging turned off'

Example #18
0
#

import sys, os

sys.path.append(
    os.path.sep.join(
        os.path.dirname(os.path.abspath(__file__))
               .split(os.path.sep)[:-2] + ['service_api', 'python']
    )
)

import time, urllib2

if __name__ == '__main__':
    from cloudi_service_api import CloudI
    obj = CloudI()
    assert(obj.nodes_add('[foobar1@hostX, foobar2@hostY]') == 'ok')
    assert(obj.nodes_remove('[foobar1@hostX, foobar2@hostY]') == 'ok')
    assert(obj.nodes_remove(
        '[foobar1@hostX, foobar2@hostY]'
    ) == '{error,{node_not_found,foobar1@hostX}}')

    assert(obj.acl_remove('[all]') == 'ok')
    assert(obj.acl_add('[{all, [database, tests]}]') == 'ok')

    # start extra instances of the http_req test
    services_added = obj.services_add("""\
[[{prefix, "/json_rpc/1/"},
  {module, cloudi_service_http_req}],
 [{prefix, "/json_rpc/2/"},
  {module, cloudi_service_http_req}],