X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fv1%2Fvca.py;fp=osmclient%2Fv1%2Fvca.py;h=37f37aa645ac61ea1aba77b2a3294dfa140f1214;hb=e84eb31aded0cb62a5523422ddc4524f6e615209;hp=0000000000000000000000000000000000000000;hpb=8160019e32e0c1009d7a98cf965b9bb9bf10f664;p=osm%2Fosmclient.git diff --git a/osmclient/v1/vca.py b/osmclient/v1/vca.py new file mode 100644 index 0000000..37f37aa --- /dev/null +++ b/osmclient/v1/vca.py @@ -0,0 +1,52 @@ +# Copyright 2017 Sandvine +# +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +""" +OSM VCA API handling +""" + +from osmclient.common.exceptions import ClientException + +class Vca(object): + + def __init__(self,http=None): + self._http=http + + def list(self): + resp = self._http.get_cmd('api/config/config-agent') + if resp and 'rw-config-agent:config-agent' in resp: + return resp['rw-config-agent:config-agent']['account'] + return list() + + def delete(self,name): + if 'success' not in self._http.delete_cmd('api/config/config-agent/account/{}'.format(name)): + raise ClientException("failed to delete config agent {}".format(name)) + + def create(self,name,account_type,server,user,secret): + postdata={} + postdata['account'] = list() + + account={} + account['name'] = name + account['account-type'] = account_type + account['juju'] = {} + account['juju']['user'] = user + account['juju']['secret'] = secret + account['juju']['ip-address'] = server + postdata['account'].append(account) + + if 'success' not in self._http.post_cmd('api/config/config-agent',postdata): + raise ClientException("failed to create config agent {}".format(name))