def upload_to_repository(self, app_name, version, file_name, file_path): parts = {'name': HttpEntityBuilder.create_string_body(app_name), 'version': HttpEntityBuilder.create_string_body(version), 'file': HttpEntityBuilder.create_file_body(file_path) } r = self._request.post_without_headers("/api/repository", HttpEntityBuilder.create_multipart_entity(parts)) if not r.isSuccessful and r.status != 201: raise Exception("Failed to upload [%s]. Server return %s.\n%s" % (file_path, r.status, r.response)) print "Received response after upload [%s].\n" % r.response return json.loads(r.response)
def uploadFile( self, domain, path, fileName, fileData ): ''' Upload a file to a Datapower device param: domain: The domain in the Datapower device where the file will be stored param: path: the Datapower path param: fileName: the file to be stored on the datapower devide param: fileData: the file content to be stored on the datapower devide ''' uri = '/mgmt/filestore/%s/%s/%s' % ( domain, path, fileName ) fileData64 = base64.encodestring( fileData ) payload = ''' { "file": { "name":"%s", "content":"%s" } } ''' body = payload % ( fileName, fileData64 ) r = self.request.put( uri, HttpEntityBuilder.create_string_entity( body ), contentType = 'application/json' ) response = json.loads( r.response ) return response['result']
def uploadFile(self, domain, path, fileName, fileData): ''' Upload a file to a Datapower device param: domain: The domain in the Datapower device where the file will be stored param: path: the Datapower path param: fileName: the file to be stored on the datapower devide param: fileData: the file content to be stored on the datapower devide ''' uri = '/mgmt/filestore/%s/%s/%s' % (domain, path, fileName) fileData64 = base64.encodestring(fileData) payload = ''' { "file": { "name":"%s", "content":"%s" } } ''' body = payload % (fileName, fileData64) r = self.request.put(uri, HttpEntityBuilder.create_string_entity(body), contentType='application/json') response = json.loads(r.response) return response['result']
def _create_deployment(self, name, cluster_ids, server_ids, version_id): # delete existing deployment before creating new one self.delete_deployment(name) req = {'name': name, 'clusters': cluster_ids, 'servers': server_ids, 'applications': [version_id]} r = self._request.post("/api/deployments", HttpEntityBuilder.create_string_entity(json.dumps(req)), contentType = 'application/json') if not r.isSuccessful(): raise Exception("Failed to create deployment. Server return %s.\n%s" % (r.status, r.response)) return json.loads(r.response)['id']
def upgradeService(self, service): # print "Executing method upgradeService() in class RancherClient class in file RancherClient.py\n" if service['state'] != 'active': print "%s cannot be upgraded because its current state is %s" % (service['name'], service['state']) sys.exit(1) print "Upgrading %s, state was %s\n" % (service['name'], service['state']) link = service['actions']['upgrade'] if service['upgrade']: upgradeConfig = service['upgrade']['inServiceStrategy'] else: upgradeConfig = None upgradeRequestBody = {"inServiceStrategy":upgradeConfig,"toServiceStrategy": None} urlString = urlunparse(('', '', urlparse(link).path, '', urlparse(link).query, ''))[1:] r =self.request.post(urlString, HttpEntityBuilder.create_string_entity(json.dumps(upgradeRequestBody)), contentType='application/json') if r.getStatus() not in HTTP_SUCCESS: self.throw_error(r) serviceAfterTransitioning = self.getStateAfterTransitioning(service) if serviceAfterTransitioning['state'] == 'upgraded': print "Service %s has been upgraded\n" % service['id'] else: print "Service %s has not been upgraded; do rollback\n" % service['id'] return serviceAfterTransitioning
import json HTTP_SUCCESS = [200,201,202,204] conn = HttpConnection( deployed.container.url, deployed.container.username, deployed.container.password ) req = HttpRequest(conn) # Get Session Token body = json.dumps(generateToken(deployed)) resp = req.post( "/id/login", HttpEntityBuilder.create_string_entity(body), contentType='application/json' ) if resp.getStatus() not in HTTP_SUCCESS: resp.errorDump() raise Exception(resp) sessionToken = json.loads(resp.getResponse())['sessionToken'] # Create service body = json.dumps(generateService(deployed)) resp = req.post( "/services/create", HttpEntityBuilder.create_string_entity(body), contentType='application/json', headers={ "Authorization": "Bearer %s" % sessionToken
def redeploy_deployment_by_id(self, deployment_id): r = self._request.post("/api/deployments/%s/redeploy" % deployment_id,HttpEntityBuilder.create_string_entity(''), contentType = 'application/json') if not r.isSuccessful(): raise Exception("Failed to redeploy [%s]. Server return %s.\n%s" % (deployment_id, r.status, r.response))