def create(self, request): """ Create Organization :param request: create parameter :return: organization ID :rtype: uuid """ serializer = OrganizationCreateBody(data=request.data) if serializer.is_valid(raise_exception=True): name = serializer.validated_data.get("name") try: Organization.objects.get(name=name) except ObjectDoesNotExist: pass else: raise ResourceExists CryptoConfig(name).create() CryptoGen(name).generate() msp, tls = self._conversion_msp_tls(name) organization = Organization(name=name, msp=msp, tls=tls) organization.save() response = OrganizationIDSerializer(data=organization.__dict__) if response.is_valid(raise_exception=True): return Response(response.validated_data, status=status.HTTP_201_CREATED)
def create(self, request): """ Create Node :param request: create parameter :return: node ID :rtype: uuid """ try: serializer = NodeCreateBody(data=request.data) if serializer.is_valid(raise_exception=True): node_name = serializer.validated_data.get("name") node_type = serializer.validated_data.get("type") num = serializer.validated_data.get("num") organization = request.user.organization agent = organization.agent.get() if agent: nodes = Node.objects.filter(name=node_name + "0", organization=organization, type=node_type) if nodes: raise ResourceExists else: raise NoResource for n in range(num): name = node_name + str(n) urls = "http://{}.{}".format(name, organization.name) nodes = {"type": node_type, "Specs": [name]} CryptoConfig(organization.name).update(nodes) CryptoGen(organization.name).extend() self._generate_config(node_type, organization.name, name) msp, tls, cfg = self._conversion_msp_tls_cfg( node_type, organization.name, name) node = Node(name=name, organization=organization, urls=urls, type=node_type, msp=msp, tls=tls, agent=agent, config_file=cfg) node.save() self._set_port(node_type, node, agent) response = NodeIDSerializer(data=node.__dict__) if response.is_valid(raise_exception=True): return Response(ok(response.validated_data), status=status.HTTP_201_CREATED) except (ResourceExists, NoResource) as e: raise e except Exception as e: return Response(err(e.args), status=status.HTTP_400_BAD_REQUEST)
def create(self, request): serializer = NodeCreateBody(data=request.data) if serializer.is_valid(raise_exception=True): node_name = serializer.validated_data.get("name") node_type = serializer.validated_data.get("type") node_urls = serializer.validated_data.get("urls") organization = serializer.validated_data.get("organization") org_name = organization["name"] try: Node.objects.get(name=node_name) except ObjectDoesNotExist: pass org = Organization.objects.get(name=org_name) nodes = { "type": node_type, "Specs": [node_name] } CryptoConfig(org_name).update(nodes) CryptoGen(org_name).extend() if node_type == "peer": dir_msp = "{}/{}/crypto-config/peerOrganizations/{}/peers/{}/msp"\ .format(CELLO_HOME, org_name, org_name, node_name+"."+org_name) else: dir_msp = "{}/{}/crypto-config/ordererOrganizations/{}/orderers/{}/msp"\ .format(CELLO_HOME, org_name, org_name.split(".", 1)[1], node_name+"."+org_name) zipDir(dir_msp, "/opt/msp.zip") f_msp = open("/opt/msp.zip", "rb") print(chardet.detect(f_msp.readline())) if node_type == "peer": dir_tls = "{}/{}/crypto-config/peerOrganizations/{}/peers/{}/tls" \ .format(CELLO_HOME, org_name, org_name, node_name + "." + org_name) else: dir_tls = "{}/{}/crypto-config/ordererOrganizations/{}/orderers/{}/msp"\ .format(CELLO_HOME, org_name, org_name.split(".", 1)[1], node_name+"."+org_name) zipDir(dir_tls, "/opt/tls.zip") f_tls = open("/opt/tls.zip", "rb") node = Node(name=node_name, organization=org, urls=node_urls, type=node_type) node.msp.save("msp.zip", File(f_msp)) node.tls.save("tls.zip", File(f_tls)) node.save() f_msp.close() f_tls.close() response = NodeIDSerializer(data=node.__dict__) if response.is_valid(raise_exception=True): return Response( response.validated_data, status=status.HTTP_201_CREATED )
def create(self, request): """ Create Node :param request: create parameter :return: node ID :rtype: uuid """ serializer = NodeCreateBody(data=request.data) if serializer.is_valid(raise_exception=True): #self._validate_organization(request) name = serializer.validated_data.get("name") type = serializer.validated_data.get("type") urls = serializer.validated_data.get("urls") organization = serializer.validated_data.get("organization") org = Organization.objects.get(id=organization) if org: pass else: raise NoResource nodes = { "type": type, "Specs": [name] } CryptoConfig(org.name).update(nodes) CryptoGen(org.name).extend() self._generate_config(type, org.name, name, urls.split(":")[2]) msp, tls, cfg = self._conversion_msp_tls_cfg(type, org.name, name) node = Node( name=name, org=org, urls=urls, type=type, msp=msp, tls=tls, config_file=cfg ) node.save() response = NodeIDSerializer(data=node.__dict__) if response.is_valid(raise_exception=True): return Response( response.validated_data, status=status.HTTP_201_CREATED )
def create(self, request): serializer = OrganizationCreateBody(data=request.data) if serializer.is_valid(raise_exception=True): org_name = serializer.validated_data.get("name") org_type = serializer.validated_data.get("type") try: Organization.objects.get(name=org_name) except ObjectDoesNotExist: pass CryptoConfig(org_name).create() CryptoGen(org_name).generate() organization = Organization(name=org_name) organization.save() response = OrganizationIDSerializer(data=organization.__dict__) if response.is_valid(raise_exception=True): return Response(response.validated_data, status=status.HTTP_201_CREATED)