سؤال

أقوم ببناء Gradle/Osgi.

لديّ بناء حزمة OSGI بشكل جيد ، لكنني أريد أتمتة نشر الحزمة. لا أعتقد أن هناك مهمة Gradle لهذا ، لذلك يصبح هذا سؤالًا رائعًا. للنشر في حاوية OSGI ، يمكنك القيام بما يلي:

  1. Telnet إلى منفذ حاوية OSGI
  2. أرسل أمر SS لسرد الحزم
  3. تحليل الحزمة المعنية
  4. قم بإلغاء تثبيت الحزمة عبر أمر "إلغاء التثبيت [ID]
  5. قم بتثبيت الحزمة عبر عنوان URL "تثبيت ملف: ///
  6. تحليل النتائج
  7. خروج جلسة Telnet.

هل هناك وسيلة إلى Telnet إلى منفذ باستخدام أوامر رائعة وإرسال أوامر وقراءة الإخراج؟

شكرا على أي مساعدة ، فيل

هل كانت مفيدة؟

المحلول

لا أعرف عن Telnet ، لكنني عملت مع Groovy و SSH باستخدام Antbuilder ومهمة Sshexec مثل هذا:

class SshClient {

    def host
    def username
    def password


    def execute (def command) {
        def ant = new AntBuilder()
        ant.sshexec(host : host,
                    username : username,
                    password : password,
                    command : command,
                    trust : "true",
                    outputproperty : "result")

        return ant.project.properties."result"
    }
}

def ssh = new SshClient ( host: "myhost",
                          username : "myuser",
                          password : "secret")

println ssh.execute("ls")

ستحتاج إلى ant-jsch.jar و jsch-0.1.33.jar أو أعلى في classpath الخاص بك.

نصائح أخرى

يجب أن يكون هذا ببساطة قابلاً للتنفيذ مع المقبس العادي ودفق القراء / الكاتب. Telnet هي مجرد واجهة أمامية لإدخال/إخراج مقبس بسيط والتي هي بروتوكولات مستندة إلى النص.

لذلك ، للقيام بخطواتك:

  • قم بإنشاء مقبس عادي إلى المضيف/المنفذ الوجهة
  • اكتب "SS"
  • إنشاء InputStreamReader
  • تستهلك كل شيء متاح
  • تحليل للعثور على معرف الحزمة الخاص بك
  • أرسل "إلغاء التثبيت" + Bundleid
  • تستهلك الدفق حتى تصل مطالبة الأوامر / انتهى إلغاء التثبيت
  • إرسال "تثبيت ملف: // path/"
  • تستهلك الدفق حتى تصل مطالبة الأوامر / التثبيت
  • socket.close ()

نعم ، أنا أعلم أن هذا يشبه الخطوات التي كتبتها بالفعل ، ولكن نظرًا لأن Telnet ليس بروتوكولًا حقيقيًا ، ولكنه مجرد واجهة إلى مآخذ النصوص ، يجب أن يكون هذا قابلاً للتنفيذ بسهولة لنفسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top