def new(application, revision=None, environment=None, name=None, parameters=None, submodules=None, destroyInterval=None): if not environment: environment = application.organization.defaultEnvironment if not parameters: parameters = {} conf = {} conf['parameters'] = parameters conf['environmentId'] = environment.environmentId if name: conf['instanceName'] = name if destroyInterval: conf['destroyInterval'] = destroyInterval if revision: conf['revisionId'] = revision.id conf['submodules'] = submodules or {} log.info("Starting instance: %s\n Application: %s (%s)\n Environment: %s (%s)\n Submodules: %s\n destroyInterval: %s" % (name, application.name, application.applicationId, environment.name, environment.environmentId, submodules, destroyInterval)) log.debug("Instance configuration: %s" % conf) data = json.dumps(conf) before_creation = time.gmtime(time.time()) resp = router.post_organization_instance(org_id=application.organizationId, app_id=application.applicationId, data=data) instance = Instance(organization=application.organization, id=resp.json()['id']) instance._last_workflow_started_time = before_creation log.debug("Instance %s (%s) started." % (instance.name, instance.id)) return instance
def new(application, revision=None, environment=None, name=None, parameters=None, destroyInterval=None): if not parameters: parameters = {} if environment: # if environment set, it overrides parameter parameters['environmentId'] = environment.environmentId elif not 'environmentId' in parameters.keys(): # if not set and not in params, use default parameters['environmentId'] = application.organization.defaultEnvironment.environmentId if name: parameters['instanceName'] = name if destroyInterval: parameters['destroyInterval'] = str(destroyInterval) if revision: parameters['revisionId'] = revision.revisionId data = json.dumps(parameters) before_creation = time.gmtime(time.time()) resp = router.post_organization_instance(org_id=application.organizationId, app_id=application.applicationId, data=data) instance = Instance(organization=application.organization, id=resp.json()['id']) instance._last_workflow_started_time = before_creation return instance