imperituroard 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/imperituroard.gemspec +3 -3
- data/lib/.DS_Store +0 -0
- data/lib/imperituroard/projects/iot/add_functions.rb +82 -0
- data/lib/imperituroard/projects/iot/hua_oceanconnect_adapter.rb +23 -0
- data/lib/imperituroard/projects/iot/mongoconnector.rb +22 -7
- data/lib/imperituroard/version.rb +1 -1
- data/lib/imperituroard.rb +20 -5
- metadata +14 -14
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 162e6e937083e7f1307a970dde31e6f1e32361cc
         | 
| 4 | 
            +
              data.tar.gz: 2cbd8b609bc29adee176e4f655c32884b470bb06
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 67208ee0587648aca3539642c80cff0bc3588a3dae78e9ee6cc4f58d6f2228e2c9044f1b45e89263f6090becc65f860fab664eda5862e650ea5634577994b9ed
         | 
| 7 | 
            +
              data.tar.gz: 833d138815a513d483ad4a154d13a168fe17f1e993f87fdf6a5b2d0278c024c2cbe6972f8504e538855c48cab12b46a882e5a318cda181d7ea2ba928dc481dad
         | 
    
        data/imperituroard.gemspec
    CHANGED
    
    | @@ -28,13 +28,13 @@ Gem::Specification.new do |spec| | |
| 28 28 | 
             
              spec.require_paths = ["lib"]
         | 
| 29 29 |  | 
| 30 30 | 
             
              spec.add_development_dependency "bundler", "2.1.4"
         | 
| 31 | 
            -
              spec.add_development_dependency "rake", " | 
| 31 | 
            +
              spec.add_development_dependency "rake", "13.0.1"
         | 
| 32 32 | 
             
              spec.add_development_dependency "net-ssh", '4.0.1'
         | 
| 33 33 | 
             
              spec.add_development_dependency "mysql2", "0.4.10"
         | 
| 34 34 | 
             
              spec.add_development_dependency "savon", "2.12.0"
         | 
| 35 35 | 
             
              spec.add_development_dependency "json", "2.3.0"
         | 
| 36 36 | 
             
              #spec.add_development_dependency "uri"
         | 
| 37 37 | 
             
              spec.add_development_dependency "mongo", "2.11.4"
         | 
| 38 | 
            -
              spec.add_development_dependency "nokogiri"
         | 
| 39 | 
            -
              spec.add_development_dependency "ipaddr"
         | 
| 38 | 
            +
              spec.add_development_dependency "nokogiri", "1.10.9"
         | 
| 39 | 
            +
              spec.add_development_dependency "ipaddr", "1.2.2"
         | 
| 40 40 | 
             
            end
         | 
    
        data/lib/.DS_Store
    CHANGED
    
    | Binary file | 
| @@ -31,4 +31,86 @@ class AdditionalFunc | |
| 31 31 | 
             
                  return {:code => 507, :result => "Unknown SDK error"}
         | 
| 32 32 | 
             
                end
         | 
| 33 33 | 
             
              end
         | 
| 34 | 
            +
             | 
| 35 | 
            +
             | 
| 36 | 
            +
              def answ_dev_query_format_process(dev_list)
         | 
| 37 | 
            +
                dataaa_ok = []
         | 
| 38 | 
            +
                dataaa_failed = []
         | 
| 39 | 
            +
                final_answ = {}
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                begin
         | 
| 42 | 
            +
                  if dev_list[:approved_list]!=[]
         | 
| 43 | 
            +
                    for i in dev_list[:approved_list][:body]
         | 
| 44 | 
            +
                      begin
         | 
| 45 | 
            +
                        imei =0
         | 
| 46 | 
            +
                        imsi =0
         | 
| 47 | 
            +
                        msisdn =0
         | 
| 48 | 
            +
                        description ="nil"
         | 
| 49 | 
            +
                        note ="nil"
         | 
| 50 | 
            +
                        type ="nil"
         | 
| 51 | 
            +
                        profile ="nil"
         | 
| 52 | 
            +
                        address ="nil"
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                        if i.key?("imei")
         | 
| 55 | 
            +
                          imei=i["imei"]
         | 
| 56 | 
            +
                        end
         | 
| 57 | 
            +
                        if i.key?("imsi")
         | 
| 58 | 
            +
                          imsi=i["imsi"]
         | 
| 59 | 
            +
                        end
         | 
| 60 | 
            +
                        if i.key?("msisdn")
         | 
| 61 | 
            +
                          msisdn=i["msisdn"]
         | 
| 62 | 
            +
                        end
         | 
| 63 | 
            +
                        if i.key?("description")
         | 
| 64 | 
            +
                          if i["description"] == nil
         | 
| 65 | 
            +
                            description="nil"
         | 
| 66 | 
            +
                          else
         | 
| 67 | 
            +
                            description=i["description"]
         | 
| 68 | 
            +
                          end
         | 
| 69 | 
            +
                        end
         | 
| 70 | 
            +
                        if i.key?("note")
         | 
| 71 | 
            +
                          if i["note"] == nil
         | 
| 72 | 
            +
                            note="nil"
         | 
| 73 | 
            +
                          else
         | 
| 74 | 
            +
                            note=i["note"]
         | 
| 75 | 
            +
                          end
         | 
| 76 | 
            +
                        end
         | 
| 77 | 
            +
                        if i.key?("type")
         | 
| 78 | 
            +
                          type=i["type"]
         | 
| 79 | 
            +
                        end
         | 
| 80 | 
            +
                        if i.key?("profile")
         | 
| 81 | 
            +
                          profile=i["profile"]
         | 
| 82 | 
            +
                        end
         | 
| 83 | 
            +
                        if i.key?("address")
         | 
| 84 | 
            +
                          address=i["address"]
         | 
| 85 | 
            +
                        end
         | 
| 86 | 
            +
                        dataaa_ok.append({:imei => imei,
         | 
| 87 | 
            +
                                          :imsi => imsi,
         | 
| 88 | 
            +
                                          :msisdn => msisdn,
         | 
| 89 | 
            +
                                          :description => description,
         | 
| 90 | 
            +
                                          :note => note,
         | 
| 91 | 
            +
                                          :type => type,
         | 
| 92 | 
            +
                                          :profile => profile,
         | 
| 93 | 
            +
                                          :address => address})
         | 
| 94 | 
            +
                      rescue
         | 
| 95 | 
            +
                        dataaa_failed.append(i[:imei])
         | 
| 96 | 
            +
                      end
         | 
| 97 | 
            +
                    end
         | 
| 98 | 
            +
                  end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
             | 
| 101 | 
            +
                  begin
         | 
| 102 | 
            +
                    for i in dev_list[:unapproved_list]
         | 
| 103 | 
            +
                      dataaa_failed.append(i[:imei])
         | 
| 104 | 
            +
                    end
         | 
| 105 | 
            +
                  rescue
         | 
| 106 | 
            +
                    nil
         | 
| 107 | 
            +
                  end
         | 
| 108 | 
            +
             | 
| 109 | 
            +
                  final_answ = {:ok => dataaa_ok, :failed => dataaa_failed}
         | 
| 110 | 
            +
                  {:code => 200, :result => "Request completed successfully", :body => final_answ}
         | 
| 111 | 
            +
                rescue
         | 
| 112 | 
            +
                  {:code => 507, :result => "Unknown SDK error", :body => {}}
         | 
| 113 | 
            +
                end
         | 
| 114 | 
            +
             | 
| 115 | 
            +
              end
         | 
| 34 116 | 
             
            end
         | 
| @@ -212,6 +212,29 @@ class HuaIot | |
| 212 212 | 
             
                {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
         | 
| 213 213 | 
             
              end
         | 
| 214 214 |  | 
| 215 | 
            +
             | 
| 216 | 
            +
              #2.9.6 Querying Directly Connected Devices and Their Mounted Devices in Batches
         | 
| 217 | 
            +
              def quer_dev_direct_conn_batches(app_id, secret, dev_list)
         | 
| 218 | 
            +
                token = get_token(app_id, secret)[:body]["accessToken"]
         | 
| 219 | 
            +
                path = "/iocm/app/dm/v1.1.0/queryDevicesByIds"
         | 
| 220 | 
            +
                url_string = "https://" + platformip + ":" + platformport + path
         | 
| 221 | 
            +
                uri = URI.parse url_string
         | 
| 222 | 
            +
                https = Net::HTTP.new(uri.host, uri.port)
         | 
| 223 | 
            +
                https.use_ssl = true
         | 
| 224 | 
            +
                https.cert = OpenSSL::X509::Certificate.new(File.read(cert_file))
         | 
| 225 | 
            +
                https.key = OpenSSL::PKey::RSA.new(File.read(key_file))
         | 
| 226 | 
            +
                https.verify_mode = OpenSSL::SSL::VERIFY_NONE
         | 
| 227 | 
            +
                request = Net::HTTP::Post.new(uri.path)
         | 
| 228 | 
            +
                request.content_type = 'application/json'
         | 
| 229 | 
            +
                request['Authorization'] = 'Bearer ' + token
         | 
| 230 | 
            +
                request['app_key'] = app_id
         | 
| 231 | 
            +
                request.body = {deviceIds: dev_list}.to_json
         | 
| 232 | 
            +
                res = https.request(request)
         | 
| 233 | 
            +
                {:code => res.code, :message => res.message, :body => JSON.parse(res.body.to_s)}
         | 
| 234 | 
            +
              end
         | 
| 235 | 
            +
             | 
| 236 | 
            +
             | 
| 237 | 
            +
             | 
| 215 238 | 
             
              def test()
         | 
| 216 239 |  | 
| 217 240 | 
             
                url_string = "https://134.17.93.4:8743/iocm/app/sec/v1.1.0/login"
         | 
| @@ -41,6 +41,7 @@ class MongoIot | |
| 41 41 | 
             
              #{:code => 200, :result => "Request completed successfully", :body => result_ps}
         | 
| 42 42 | 
             
              def get_profiles_by_login(login)
         | 
| 43 43 | 
             
                begin
         | 
| 44 | 
            +
                  p "get_profiles_by_login get_profiles_by_login"
         | 
| 44 45 | 
             
                  login_profiles = []
         | 
| 45 46 | 
             
                  req2 = []
         | 
| 46 47 | 
             
                  result_ps = []
         | 
| @@ -49,13 +50,19 @@ class MongoIot | |
| 49 50 | 
             
                  collection.find({:login => login}).each {|row|
         | 
| 50 51 | 
             
                    login_profiles = row["permit_profiles"]
         | 
| 51 52 | 
             
                  }
         | 
| 52 | 
            -
                   | 
| 53 | 
            -
             | 
| 53 | 
            +
                  p login_profiles
         | 
| 54 | 
            +
                  if login_profiles !=[]
         | 
| 55 | 
            +
                    for i in login_profiles
         | 
| 56 | 
            +
                      req2.append({:profile_id => i})
         | 
| 57 | 
            +
                    end
         | 
| 58 | 
            +
                    collection2.find({:$or => req2}, {:_id => 0}).each {|row|
         | 
| 59 | 
            +
                      result_ps.append(row)
         | 
| 60 | 
            +
                    }
         | 
| 61 | 
            +
                    return {:code => 200, :result => "Request completed successfully", :body => result_ps}
         | 
| 62 | 
            +
                  else
         | 
| 63 | 
            +
                    return {:code => 404, :result => "Access denied. Incorrect login"}
         | 
| 54 64 | 
             
                  end
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                    result_ps.append(row)
         | 
| 57 | 
            -
                  }
         | 
| 58 | 
            -
                  return {:code => 200, :result => "Request completed successfully", :body => result_ps}
         | 
| 65 | 
            +
             | 
| 59 66 | 
             
                rescue
         | 
| 60 67 | 
             
                  return {:code => 507, :result => "Unknown SDK error"}
         | 
| 61 68 | 
             
                end
         | 
| @@ -112,6 +119,11 @@ class MongoIot | |
| 112 119 | 
             
                get_login_info = get_profiles_by_login(login)
         | 
| 113 120 | 
             
                p "get_login_info"
         | 
| 114 121 | 
             
                p get_login_info
         | 
| 122 | 
            +
             | 
| 123 | 
            +
                if get_login_info[:code]==200
         | 
| 124 | 
            +
             | 
| 125 | 
            +
             | 
| 126 | 
            +
             | 
| 115 127 | 
             
                dst_profile = get_profile_id_by_name(profile)
         | 
| 116 128 | 
             
                p "dst_profile"
         | 
| 117 129 | 
             
                p dst_profile
         | 
| @@ -134,7 +146,10 @@ class MongoIot | |
| 134 146 | 
             
                    return {:code => 501, :result => "Profile not found"}
         | 
| 135 147 | 
             
                  end
         | 
| 136 148 | 
             
                else
         | 
| 137 | 
            -
                  {:code => 500, :result => "Login not found"}
         | 
| 149 | 
            +
                  return {:code => 500, :result => "Access denied. Login not found"}
         | 
| 150 | 
            +
                end
         | 
| 151 | 
            +
                else
         | 
| 152 | 
            +
                  {:code => 500, :result => "Access denied. Login not found"}
         | 
| 138 153 | 
             
                end
         | 
| 139 154 | 
             
              end
         | 
| 140 155 |  | 
    
        data/lib/imperituroard.rb
    CHANGED
    
    | @@ -204,7 +204,9 @@ class Iot | |
| 204 204 | 
             
                      prof_name1 = mongo_client.get_profile_name_from_imei(t)
         | 
| 205 205 | 
             
                      if prof_name1[:code]==200
         | 
| 206 206 | 
             
                        begin
         | 
| 207 | 
            -
                          permiss1 = mongo_client.check_login_profile_permiss(login, prof_name1[:body]["profile"]) | 
| 207 | 
            +
                          permiss1 = mongo_client.check_login_profile_permiss(login, prof_name1[:body]["profile"])
         | 
| 208 | 
            +
                          p "permiss1"
         | 
| 209 | 
            +
                          p permiss1
         | 
| 208 210 | 
             
                          if permiss1==200
         | 
| 209 211 | 
             
                            ime_list_approved.append(t)
         | 
| 210 212 | 
             
                          else
         | 
| @@ -447,13 +449,10 @@ class Iot | |
| 447 449 | 
             
              #newdevice_list=[{:imei=>7967843245665, :attributes=>{:address=>"Golubeva51", :profile=>"wqeqcqeqwev", :msisdn=>375298766719, :imsi=>25702858586756875}}]
         | 
| 448 450 | 
             
              #+
         | 
| 449 451 | 
             
              def add_service(login, device_list, remote_ip)
         | 
| 450 | 
            -
             | 
| 451 452 | 
             
                resp_out = {}
         | 
| 452 | 
            -
             | 
| 453 453 | 
             
                not_processed = []
         | 
| 454 454 | 
             
                processed = []
         | 
| 455 455 |  | 
| 456 | 
            -
             | 
| 457 456 | 
             
                input_json = {:login => login, :devices => device_list}
         | 
| 458 457 |  | 
| 459 458 | 
             
                begin
         | 
| @@ -525,6 +524,16 @@ class Iot | |
| 525 524 | 
             
              end
         | 
| 526 525 |  | 
| 527 526 |  | 
| 527 | 
            +
              def answ_dev_query_format_process(dev_list)
         | 
| 528 | 
            +
                add_functions_connector.answ_dev_query_format_process(dev_list)
         | 
| 529 | 
            +
              end
         | 
| 530 | 
            +
             | 
| 531 | 
            +
             | 
| 532 | 
            +
              def logger_to_audit_database(proc_name, src_ip, input_json, output_json)
         | 
| 533 | 
            +
                mongo_client.audit_logger(proc_name, src_ip, input_json, output_json)
         | 
| 534 | 
            +
              end
         | 
| 535 | 
            +
             | 
| 536 | 
            +
             | 
| 528 537 | 
             
              def test()
         | 
| 529 538 | 
             
                ddd = MongoIot.new(mongoip, mongoport, mongo_database)
         | 
| 530 539 | 
             
                #ddd.get_profiles_by_login("test")
         | 
| @@ -547,7 +556,13 @@ class Iot | |
| 547 556 | 
             
                list = ["41c0ba82-d771-4669-b766-fcbfbedc17f4", "7521234165452", "feb9c4d1-4944-4b04-a717-df87dfde30f7", "9868e121-c309-4f4f-8ab3-0aa69072caff", "b3b82f35-0723-4a83-90af-d4ea40017194"]
         | 
| 548 557 | 
             
                #p ddd1.querying_device_direct_conn("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", list)
         | 
| 549 558 | 
             
                #p ddd1.querying_device_type_list("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa")
         | 
| 550 | 
            -
                p ddd1.querying_device_id("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "7521234165452")
         | 
| 559 | 
            +
                #p ddd1.querying_device_id("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "7521234165452")
         | 
| 560 | 
            +
                #p ddd1.dev_register_verif_code_mode("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "12321234545345")
         | 
| 561 | 
            +
             | 
| 562 | 
            +
                p ddd1.quer_dev_direct_conn_batches("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", ["62c5f5ef-dead-48bf-9f09-292ca5e41577", "4c763ea1-be51-4eff-81db-863bc04791bb"])
         | 
| 563 | 
            +
             | 
| 564 | 
            +
                #ddd1.querying_device_info("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "c6e0dfb1-8042-472a-a35d-e984f118d2a6")
         | 
| 565 | 
            +
             | 
| 551 566 | 
             
                #ddd1.dev_delete("Cd1v0k2gTBCbpQlMVlW1FVqOSqga", "kbfo5JlBxTIhjVwtjHleWS5Iw5wa", "484114f6-a49c-4bab-88e6-4ddaf1cc1c8f")
         | 
| 552 567 | 
             
              end
         | 
| 553 568 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: imperituroard
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Dzmitry Buynovskiy
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-04- | 
| 11 | 
            +
            date: 2020-04-15 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -28,16 +28,16 @@ dependencies: | |
| 28 28 | 
             
              name: rake
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - '='
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version:  | 
| 33 | 
            +
                    version: 13.0.1
         | 
| 34 34 | 
             
              type: :development
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - '='
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version:  | 
| 40 | 
            +
                    version: 13.0.1
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: net-ssh
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -112,30 +112,30 @@ dependencies: | |
| 112 112 | 
             
              name: nokogiri
         | 
| 113 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 114 | 
             
                requirements:
         | 
| 115 | 
            -
                - -  | 
| 115 | 
            +
                - - '='
         | 
| 116 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version:  | 
| 117 | 
            +
                    version: 1.10.9
         | 
| 118 118 | 
             
              type: :development
         | 
| 119 119 | 
             
              prerelease: false
         | 
| 120 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
                requirements:
         | 
| 122 | 
            -
                - -  | 
| 122 | 
            +
                - - '='
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 | 
            -
                    version:  | 
| 124 | 
            +
                    version: 1.10.9
         | 
| 125 125 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 126 126 | 
             
              name: ipaddr
         | 
| 127 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 128 | 
             
                requirements:
         | 
| 129 | 
            -
                - -  | 
| 129 | 
            +
                - - '='
         | 
| 130 130 | 
             
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            -
                    version:  | 
| 131 | 
            +
                    version: 1.2.2
         | 
| 132 132 | 
             
              type: :development
         | 
| 133 133 | 
             
              prerelease: false
         | 
| 134 134 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 135 | 
             
                requirements:
         | 
| 136 | 
            -
                - -  | 
| 136 | 
            +
                - - '='
         | 
| 137 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 | 
            -
                    version:  | 
| 138 | 
            +
                    version: 1.2.2
         | 
| 139 139 | 
             
            description: Gem from imperituroard for different actions
         | 
| 140 140 | 
             
            email:
         | 
| 141 141 | 
             
            - imperituro.ard@gmail.com
         |